我正在使用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.
最佳答案
我刚刚发现2a
和2y
除了名称(前缀)非常相似。
将laravel哈希的2y
替换为2a
仍然可以保持哈希的完整性,即使替换身份,它也可以正常工作并与密码匹配。
就我而言(问题),解决方案是使用str.replace('$2y$', '$2a$')
,并且一切正常。
现在py-bcrypt接受哈希,没有错误invalid salt
。
祝大家好运。