Android:传递给AESObfuscator的随机SALT字节需要保持不变吗?

我正在Android应用程序中实现许可,并且有一个需要传递到传递给ServerManagedPolicy对象的AESObfuscator的20个字节的数组。 每次代码运行时都可以随机生成这个数组,还是必须进行硬编码?

现在我随机产生这样的

private static final byte[] SALT; static { Random random = new Random(); random.setSeed(System.currentTimeMillis()); byte[] buf = new byte[20]; random.nextBytes(buf); SALT = buf; } 

Solutions Collecting From Web of "Android:传递给AESObfuscator的随机SALT字节需要保持不变吗?"

有点晚,但是:盐必须保持不变,才能够再次解密存储的值。

基本上腌制意味着随机化一个密码短语,使字典攻击更难。 盐如何防止字典的攻击?

更新(一年后:)顺便说一句:使用一个SecureRandom生成器的字节,而不是一个随机生成器 – 这是更好的 (我可以进入细节,但你可以在其他地方find。http: //docs.oracle.org .com / javase / 7 / docs / api / java / security / SecureRandom.html )