【发布时间】:2015-02-24 16:34:02
【问题描述】:
我已将我的网站更改为 Laravel 并使用他们存储密码的方法。
但是,我所有的旧用户密码都使用盐以不同方式存储。我最初的目标是通过一些代码简单地运行所有用户和他们的盐以获取原始密码,然后通过 Laravel 进程运行它们。
但是,我无法弄清楚如何获取原始密码。生成盐和密码的代码给了我,在我知道太多之前就被剪切和粘贴了。
所以,创建用户密码的旧方法:
// Create a salt for password
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
// Hash for password
$password = hash('sha256', $_POST['password'] . $salt);
// Next we hash the hash value 65536 more times...
for($round = 0; $round < 65536; $round++)
{
$password = hash('sha256', $password . $salt);
}
然后登录时:
$check_password = hash('sha256', $_POST['password'] . $row['salt']);
for($round = 0; $round < 65536; $round++)
{
$check_password = hash('sha256', $check_password . $row['salt']);
}
是否有可能我必须撤消更改并获取原始密码?
如果需要测试,哈希密码和盐:
password: f7e98af40e141e8abdae42c6e4c3375ff7eede881678a07b18898724240035de
salt: 3eb9507334ff0ab2
谢谢。
【问题讨论】:
-
没有。哈希是一种方式。
-
原来如此,Plab B 就是这样。
-
@JohnConde 纽约市和 MTL 的大多数街道也是如此;-) 市中心
-
@Fred-ii- 非常正确!
-
一个建议。您可以在用户表中添加一个名为 old_password 的字段,并将所有现有用户标记为 true。然后在您的身份验证中,如果它是旧密码,则以旧方式检查它,如果它是新用户,则将使用 Laravel 方法。我过去在框架迁移中成功地做到了这一点。祝你好运!
标签: php security hash passwords