Linux操作系统下每次AES加密结果不一致的原因
来源:互联网 发布:python anaconda 安装 编辑:程序博客网 时间:2024/06/06 02:23
定位在生成KEY的方法上,如下:
public static SecretKey getKey (String strKey) { try { KeyGenerator _generator = KeyGenerator.getInstance( "AES" ); _generator.init(128, new SecureRandom(strKey.getBytes())); return _generator.generateKey(); } catch (Exception e) { throw new RuntimeException( " 初始化密钥出现异常 " ); } }
修改到如下方式,问题解决:
public static SecretKey getKey(String strKey) { try { KeyGenerator _generator = KeyGenerator.getInstance( "AES" ); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG" ); secureRandom.setSeed(strKey.getBytes()); _generator.init(128,secureRandom); return _generator.generateKey(); } catch (Exception e) { throw new RuntimeException( " 初始化密钥出现异常 " ); } }
原因分析:
SecureRandom 实现随操作系统本身的內部状态,除非调用方在调用 getInstance 方法之后又调用了 setSeed 方法;该实现在 windows 上每次生成的 key 都相同,但是在 solaris 或部分 linux 系统上则不同。
0 0
- Linux操作系统下每次AES加密结果不一致的原因
- AES LINUX加密结果不一致
- AES加密算法在linux下相同输入每次加密结果都不同的问题
- AES加密解密Windows下跟linux下结果不同的解决方案
- AES加密解密Windows下跟linux下结果不同的解决方案
- AES加密算法在Linux下出现随机加密结果
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- 解决Linux操作系统下AES解密失败的问题
- 解决Linux操作系统下AES解密失败的问题
- {转}解决Linux操作系统下AES解密失败的问题
- 解决Linux操作系统下AES解密失败的问题
- 解决Linux操作系统下AES解密失败的问题
- 解决Linux操作系统下AES解密失败的问题
- Linux下使用openssl的AES加密-ECB模式
- Linux下使用openssl的AES加密-CBC模式
- LeetCode中runcode结果和sublime结果不一致的原因
- OpenCV计时代码段
- 关于lambda引出的碎碎念
- 红黑树
- 我的标题233
- 基础数学运算
- Linux操作系统下每次AES加密结果不一致的原因
- Erlang(3):数据类型与变量
- freemarker格式化
- java获取时间段、时间点
- 适配器模式(Adapter)
- 2015百度校招笔试真题以及解析(一)
- Linux快速配置集群ssh互信
- 使用地图的API获取目标的经纬度以及获取两地间的距离
- 获取easyui-datagrid中文本列的值的正确方法