我正在为rails 4应用程序进行远程身份验证。密码哈希是使用冷融合哈希库编写的,我需要尝试匹配Rails中的最终结果,以允许用户进入应用程序。
我确实看到Digest库有一些用于将字符串转换为SHA512十六进制的东西。但这似乎不是我需要的。哈希的示例片段如下:ü\rÀÚ힎
Ruby中是否有哈希库允许我在SHA512中散列字符串。这样的事情是否存在或是否存在我可以利用的外部宝石?
提前致谢。
答案 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"