是什麼在這個軌道上的當量(PHP):Ruby on Rails的傳遞鹽消化:: SHA512
hash_hmac('sha512', $password . $salt, $siteSalt);
我得到儘可能的:
Digest::SHA512.hexdigest(password + salt)
,但沒有想法如何將網站鹽納入到公式中,我所見過的所有在線示例都不會將鹽傳遞給十六進制方法。當我嘗試過它時,我得到了太多參數的錯誤。
而這個符號以一個冒號(我所看見的地方):
salted = password + salt
Digest::SHA512.hexdigest("#{salted}:site_salt")
不會產生相同的散列。
感謝
編輯 我偶然發現了這一點,看起來更接近我需要什麼(很抱歉,我很新的全散列東西):
OpenSSL::HMAC.hexdigest('sha512', site_salt, salted)
但它仍然產生與存儲在數據庫中的哈希不同。
是的,這差不多就是我在最後的方法。原來在PHP代碼中鹽是空的,因此存在差異。非常感謝您的回答。 – kakubei 2012-02-28 09:14:08
Rails代碼沒有爲我編譯(3年後使用Rails 4並不奇怪)。所以任何人發現這一點,請參閱下面的答案。 – tomf 2015-04-07 14:46:57