0

我在我的 RoR 中使用 BCrypt,我得到的是数字而不是我习惯的十六进制表示。这里是刑法。

username = params[:username]
password = params[:password]

encrypted_password = BCrypt::Password.create(password)
encrypted_password = encrypted_password.hash

encrypted_pa​​ssword 变量显示为 4245597694343378249 之类的数字。我使用 BCrypt for Java,我期待像 $2asfa$asdfasfsafsad 这样的数字。我想知道是否有人知道我做错了什么。

任何帮助是极大的赞赏。

4

1 回答 1

3

作为数字序列出现的密码变量是因为您将 .hash 应用于加密密码。因此,您正在调用 String#hash 方法,该方法仅根据长度和内容为您提供哈希值。

如果您想查看您期望的 bcrypt 输出,只需执行以下操作:

username = params[:username]
password = params[:password]

encrypted_password = BCrypt::Password.create(password)
puts encrypted_password

干杯,肖恩

于 2012-04-23T17:52:56.690 回答