我使用Laravel来注册用户。它像这样使用bcrypt:
$2y$10$kb9T4WXdz5aKLSZX1OkpMOx.3ogUn9QX8GRZ93rd99i7VLKmeoXXX
我目前正在制作另一个脚本,它将使用python验证来自另一个来源的用户。我安装了py-bcrypt
并试用了它。格式如下:
$2a$10$Vj0b0GZegbpXIIpa/lvi9OjkAFJ5zNzziVRW7yN9ssDKVQDX47XXX
但在python上,由于invalid salt
的原因,我无法对用户进行身份验证。
我注意到Laravel bcrypt使用$2y
,而python使用$2a
。我该如何解决这个问题呢?
备注:
I used 10 rounds for both crypts.
发布于 2014-01-25 09:33:31
我刚刚发现除了名称(前缀)之外,2a
和2y
非常相似。
将laravel散列的2y
替换为2a
仍然保持散列的完整性,即使您替换了身份,也应该正常工作并与密码匹配。
在我的例子(问题)中,解决方案是使用str.replace('$2y$', '$2a$')
,它工作得很好。现在py-bcrypt接受散列而不会出现错误invalid salt
。
祝你们好运。
https://stackoverflow.com/questions/21329871
复制相似问题