如何在Rails 4中将字符串转换为SHA512哈希

时间:2014-06-25 15:04:54

标签: ruby-on-rails ruby string-hashing

我正在为rails 4应用程序进行远程身份验证。密码哈希是使用冷融合哈希库编写的,我需要尝试匹配Rails中的最终结果,以允许用户进入应用程序。

我确实看到Digest库有一些用于将字符串转换为SHA512十六进制的东西。但这似乎不是我需要的。哈希的示例片段如下:ü\rÀÚ힎

Ruby中是否有哈希库允许我在SHA512中散列字符串。这样的事情是否存在或是否存在我可以利用的外部宝石?

提前致谢。

1 个答案:

答案 0 :(得分:5)

听起来像是在寻找Digest::SHA2#digest

[3] pry(main)> Digest::SHA2.new(512).digest("test")
=> "\xEE&\xB0\xDDJ\xF7\xE7I\xAA\x1A\x8E\xE3\xC1\n\xE9\x92?a\x89\x80w.G?\x88\x19\xA5\xD4\x94\x0E\r\xB2z\xC1\x85\xF8\xA0\xE1\xD5\xF8O\x88\xBC\x88\x7F\xD6{\x1472\xC3\x04\xCC_\xA9\xAD\x8EoW\xF5\x00(\xA8\xFF"

hexdigest函数相反,后者将返回格式化字符串:

[9] pry(main)> Digest::SHA2.new(512).hexdigest("test")
=> "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff"

请参阅Digest Instance Methods