解析

时间:2016-05-01 19:19:54

标签: php bcrypt

由于parse.com正在关闭其服务,我现在必须迁移到mysql。但我似乎无法获得密码生成方法。

示例密码为:

" $ 2A $ 10 $ oNQjqXhZjWHVb.ock1Lfs.D4yeHhtaEFdiuHNIkSsambfsSCix / 96"

我读了几个来源并得到了它使用bcrypt进行密码生成,成本为10。 我仍然无法在PHP中获得概念并实现相同的功能(我正在为我的应用程序构建API)。

以下是我遇到的相同链接:

What column type/length should I use for storing a Bcrypt hashed password in a Database?

任何人都可以帮助我在php中构建相同的密码生成方法,这样我就不会对现有的应用程序用户感到失望(我需要验证登录密码以及在注册时生成密码)。 / p>

提前致谢!

1 个答案:

答案 0 :(得分:2)

您应该使用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
}