我要将我的后端从 PHP 迁移到 Vapor,在我的数据库中,我的所有用户密码都使用这个 PHP 代码(无盐)保存:
$passwordCypher = crypt("12345");
该代码生成一个密码$1$FbxPUeK7$v/4zDrd7HbhVB0i8c.uCa.
,所以我所有的数据库密码都以$1
.
现在,在我的新 Vapor 代码上,我正在尝试使用Bcrypt
如下库来验证这些数据库密码:
let pass = try Bcrypt.verify("12345", created: "$1$FbxPUeK7$v/4zDrd7HbhVB0i8c.uCa.")
但总是我得到错误:"Bcrypt error: Invalid hash formatting"
当我尝试使用带有此代码的 Bcrypt 生成新哈希时:
let digest = try Bcrypt.hash("12345")
它给了我一个像这样的哈希:$2b$12$j6iPanM5/pwVvryKSIbr3uzKpG6YUfV3pcb7bNn4p3qjrmk0gcBdW
从 开始$2
,据我了解,Bcrypt 无法比较我的数据库密码,因为它不会$1
像哈希一样生成。
有什么方法可以让 Bcrypt$1
像我的 PHP 版本一样生成一个吗?