php - 使用 PHP 在登录表单中使用 sha1 加盐密码?

标签 php mysql sha1

我正在使用以下内容对用户密码进行 sha1 和 slat 并将它们保存在数据库中。

$salt = sha1($password);
$hashedPass = sha1($salt.$password);

现在我需要能够在登录表单中使用这个保存的密码。

我正在使用以下代码,登录表单一直告诉我输入了错误的信息:

$password = (!empty($_POST['password'])) ? sha1($_POST['password']) : '';

有人可以帮我解决这个问题吗?

提前致谢。

最佳答案

看起来您将哈希密码作为 sha1($salt.$password) 存储在数据库中,但在检查密码的逻辑中,您只是将其设置为 sha1($password)。因此它与数据库值不匹配。

您需要设置 $password = sha1(sha1($_POST['password']).$_POST['password']);

但是,将盐仅存储为密码的 sha1 是没有意义的。

关于php - 使用 PHP 在登录表单中使用 sha1 加盐密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037625/

相关文章:

mysql - 将数据库导入 phpmyadmin #1044 - 用户访问被拒绝,无法编辑文件

php - 用 3 个表计算项目

perl - 在 PERL 中将 SHA1 十六进制转换为 base64 编码(对于 Apache htpasswd)

php - 如何使用 PHP cURL 发布 JSON 数据?

php - Laravel 文件夹结构

php - 为什么不允许对象作为关联数组中的键?

java - "SHA1withRSA"的细节是什么?

php - Laravel 项目旁边的 Wordpress 项目(在 public_html 文件夹中)

php - 将多维数组插入mysql数据库,每个数组作为mysql列

php - 在 ColdFusion MX7 和 PHP 5.x 上工作相同的散列函数?