在Linux系统中,使用MD5哈希存储密码.为什么"盐"的使用可以更多地保护系统?特别是,我想说明以下两点
/etc/shadow.例如,用户A具有用户salt s1并生成h1; h1 = md5(password.s1);.下一次,它使用salt s2,系统必须生成不同的哈希值h2 = md5(password.s2).由于h1不等于h2,系统如何验证用户?
我正在我的Android应用程序中实现许可,并且需要将20个字节的数组传递到传递给ServerManagedPolicy对象的AESObfuscator.每次运行代码时都可以随机生成此数组,还是必须进行硬编码?
现在我随机生成这样的盐:
private static final byte[] SALT;
static {
Random random = new Random();
random.setSeed(System.currentTimeMillis());
byte[] buf = new byte[20];
random.nextBytes(buf);
SALT = buf;
}
Run Code Online (Sandbox Code Playgroud)