我想在我的应用程序中实施许可并且需要一些帮助。
示例应用程序具有以下内容:
// REPLACE WITH YOUR OWN SALT , THIS IS FROM EXAMPLE
private static final byte[] SALT = new byte[]{
-46, 65, 30, -128, -103, -57, 74, -64, 51, 88, -95, -45, 77, -117, -36, -113, -11, 32, -64,
89
};
Run Code Online (Sandbox Code Playgroud)
我想知道我只是将数字更改为某个随机数还是必须使用它生成它SecureRandom?
我遇到了这个代码,我必须从剪贴板设置 SALT 变量吗?
此外,每个设备的 SALT 必须不同还是相同?
可能重复:
盐的目的是什么?
我刚刚读了一些关于盐的使用的内容,我一直在阅读的例子给出了在散列之前为密码添加盐以防止字典攻击的问题.
但是,我真的没有看到它有多大帮助 - 如果攻击者可以访问密码的哈希值(就像我在阅读的例子中那样),他们很可能也可以访问盐.因此,在运行字典之前,攻击者是否只能将salt添加到字典中的每个项目之前并将其后置,以查看它是否与哈希匹配?所以他们不得不多次迭代字典,这似乎不是一个保护增强?