【发布时间】:2023-03-13 18:37:01
【问题描述】:
我使用 java SecureRandom 创建盐来加密用户。但是,当我尝试用盐和密码匹配用户时,他们在不同的机器上失败了。用户是在 Linux 测试机器上创建的,我将数据库复制到我的 OS X 机器上。匹配在测试机器上成功,但在我的 OS X 上失败。
相同的盐使用以下代码得到不同的字节,甚至长度不同:
salt.getBytes()
这是盐的生成过程:
SecureRandom random = new SecureRandom();
byte bytes[] = new byte[20];
random.nextBytes(bytes);
String salt = new String(bytes);
user.setSalt(salt);
getBytes() 是否有可能在不同机器上对相同的盐有不同的值?
【问题讨论】: