2013-06-19 49 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表示固定版本。