我正在使用密码系统,当用户注册时,会使用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很新,所以我可能完全错了。这是我的技术还是更深层次的问题?