2013-06-19 66 views
0

我在解決如何執行此操作時遇到問題。
Laravel使用PHP crypt函數。我不確定Ruby中的等價物是什麼。
我的密碼也會使用$2a哈希散列,如果這有所影響。將Laravel密碼遷移到Ruby

這是Laravel的功能

public static function check($value, $hash) 
{ 
    return crypt($value, $hash) === $hash; 
} 

我已經試過Bcrypt :: Password.new以及字符串#地穴,但我似乎無法讓他們的工作。

從數據庫和真實的例子密碼$2a$08$WJZWRyljoJGx.qunOGuGLeDaOn/Q3ShEvGxTkx3csWXqWUF21GhBe123456

回答

0

對此深感抱歉。我只是想通過發佈後如何工作。

將溶液BCrypt::Password.new('$2a$08$WJZWRyljoJGx.qunOGuGLeDaOn/Q3ShEvGxTkx3csWXqWUF21GhBe') == '123456'

0

PHP的隱窩方法使用bcrypt散列條目非標準符號。您需要更正此:

hash = '$2y$10$tKrgxXzN.naFD3r//yX9/O5uJmGRA9lzlcoPgK.F8REX.kx9xOesS' 
BCrypt::Password.new(hash.sub(/\A\$2y/, '$2a')) == "Test1111!" 
# => true 

有在PHP的密碼庫文件中的錯誤,從而2Y表示固定版本。