这个问题已经在这里有了答案:

我在网上找到了一篇包含以下代码的文章,我想用它来学习更多的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中验证密码?

===============>>#1 票数:1 已采纳

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

这是查看加密码的密码是否存储匹配密码的一般过程。

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

您还应该考虑使用bcrypt代替: 如何使用bcrypt在PHP中对密码进行哈希处理?

===============>>#2 票数:0

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

  ask by Mike translate from so

未解决问题?本站智能推荐: