在我的加密应用程序中,我有密码创建位:
PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, 10000, keyLength);
稍后在实际的加密部分:
cipher.init(Cipher.ENCRYPT_MODE, secret, ivSpec);
初始化向量需要随机字节,salt 需要随机字节,我可以为 salt 和 IV 使用相同的(加密安全的)随机字节,还是会以某种方式削弱加密?- 如果可以的话,它会使存储更容易一些。
我不是在谈论在多条消息上重用 IV 或盐,对于每条单独的消息,都会生成一个新的字节数组,但是我可以为每条单独的消息加倍并为盐 + 使用相同的新生成的字节吗?第四?
例如:
消息 1:随机字节 = h6ds .... Salt = h6ds / IV = h6ds
消息 2:随机字节 = djs9 .... Salt = djs9 / IV = djs9
消息 3:随机字节 = 9sdf .... Salt = 9sdf / IV = 9sdf
... 等等