pho*_*594 1 java encryption android salt
我一直在使用Java的SecureRandom类来生成盐,以便以后加密和密码哈希(我为每个任务生成单独的盐).我一直在使用的代码如下:
//Init random number generator
secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(System.nanoTime());
//Create salts
secureRandom.nextBytes(bytAuthSalt);
secureRandom.nextBytes(bytEncryptionSalt);
Run Code Online (Sandbox Code Playgroud)
现在,一切都很顺利,直到我开始真正验证我得到的值.对于应用程序的几个连续执行,我的盐是:
[B@43d55dd8
[B@43d55b58
[B@43d55b50
[B@43bd0cc8
[B@43db0b08
[B@43bd0f50
Run Code Online (Sandbox Code Playgroud)
令我感到不安的是,这些数字似乎都是大致顺序的.在网上进行了一些搜索之后,我再次重复运行,而没有自己播种到相同的结果.
我唯一猜测可能导致这种情况的原因在于我正在为Android平台开发.我知道他们有自己的加密提供商,但我没有任何例外.有任何想法吗?
提前致谢.
看起来你打印出对字节数组的引用而不是它的内容.这就是为什么它们是顺序的,引用基本上是给你JVM内存中的位置.在打印之前将字节数组转换为String.
String saltContents = Arrays.toString(bytAuthSalt);
Run Code Online (Sandbox Code Playgroud)
使用Arrays将数组转换为String 将显示字节的原始值.
| 归档时间: |
|
| 查看次数: |
1830 次 |
| 最近记录: |