【发布时间】:2014-10-19 03:19:45
【问题描述】:
我正在使用 FOSUserBundle 将 Parse.com 应用程序迁移到 Symfony2 中新开发的平台,该平台使用 sha512 而不是 bcrypt。如果输入的密码是存储在 Parse.com 数据库中的密码,我想用 php 手动检查,这样用户就可以登录,我可以用 sha512 版本替换 bcrypt 存储的密码。有没有办法做到这一点?我有以下代码用于 sha512 验证,并希望做同样的事情,但使用 Parse.com bcrypt 密码:
$salted = $password.'{'.$entity->getSalt().'}';
$digest = hash('sha512', $salted, true);
for ($i = 1; $i < 5000; $i++) {
$digest = hash('sha512', $digest.$salted, true);
}
if(base64_encode($digest) == $entity->getPassword())
{
$message = 'OK';
}
else{
$message = 'Incorrect password.';
}
return $message;
【问题讨论】:
-
您是在问如何插入自定义密码编码器,还是需要密码编码器本身?
-
密码编码器本身,找不到也不想泄露当前用户的密码。
-
反对票很奇怪。这不是一个写得特别好的问题,但它是完全有效的。我真的希望投票者被要求发表评论。
-
想同样的事情..
标签: php security symfony passwords bcrypt