4

我正在使用密码系统,当用户注册时,会为他们生成一个盐,使用BCrypt::Password.create("Use #{username} with #{Time.now} and #{rand(100)} to make salt", cost: 13).

然后它还会用他们输入的密码加密BCrypt::Password.create("Put #{salt} on the #{password}"),然后将两者都保存到数据库中。

当他们登录时,它使用这个:

check_password = BCrypt::Password.new(hashed_password)
check_password == "Put #{salt} on the #{password}"

问题是任何密码检查总是返回 true,只要 salt 是 BCrypt 加密字符串。

我对 BCrypt 还很陌生,所以我可能做错了。是我的技术还是更深层次的问题?

4

0 回答 0