如何在PHP和MYSQL中验证密码

时间:2013-04-18 00:09:53

标签: php mysql

我在Web上找到了一篇文章,我想用它来学习更多php / mysql ...

$username = 'Admin';
$password = 'gf45_gdf#4hg';

$salt = hash('sha256', uniqid(mt_rand(), true) . 'a random string will go here' . strtolower($username));

$hash = $salt . $password;

for ( $i = 0; $i < 100000; $i ++ ) {
     $hash = hash('sha256', $hash); }

$hash = $salt . $hash;

当用户想要登录时,如何在PHP中验证密码?

2 个答案:

答案 0 :(得分:1)

您将运行完全相同的过程并查看结果是否匹配。

这是查看汇总密码是否存储匹配密码的一般程序。

  • 您创建了一个散列并存储已知密码的函数,并且通常也将其加密
  • 您将其存储在数据库中
  • 当用户提交登录密码时,您可以通过完全相同的散列和salting算法运行密码,并查看生成的散列是否与存储在数据库中的散列相匹配

您还应该考虑使用bcrypt:How do you use bcrypt for hashing passwords in PHP?

答案 1 :(得分:0)

建议在PHP中编写一个类似于上面概述的过程的函数。这样,当您尝试验证提交的凭据时,您将通过与受孕期间相同的散列过程运行密码,但生成随机盐除外。

相关问题