由于parse.com正在关闭其服务,我现在必须迁移到mysql。但我似乎不知道它的密码生成方法。
示例密码为:
"$2a$10$oNQjqXhZjWHVb.ock1Lfs.D4yeHhtaefiuHNIksambfsSCix/96"
我阅读了一些资料,发现它使用bcrypt生成密码,成本为10。尽管如此,我还是无法在PHP中获得这个概念并实现它(我正在为我的应用程序构建API)。
下面是我遇到的相同的链接:
在数据库中存储Bcrypt哈希密码时,应使用哪种列类型/长度?
有人能帮我在php中构建相同的密码生成方法吗?这样我就不会失去现有的应用程序用户(我需要验证登录密码,并在注册时生成密码)。
提前感谢!
您应该使用password_verify()
:
$hash = '$2a$10$oNQjqXhZjWHVb.ock1Lfs.D4yeHhtaEFdiuHNIkSsambfsSCix/96'; // e.g. coming from database
$userInput = isset($_POST['password']) ? $_POST['password'] : null; // coming from user input form
if (password_verify($userInput, $hash)) {
// user password valid
}
else {
// user password invalid
}