php - 带有散列密码和用户登录的新手 php 问题

标签 php mysql hash

这是我创建帐户的 mysql 查询。为了方便起见,我省略了加盐。

$q = $dbc -> prepare("INSERT INTO accounts (username, email, password) 
                      VALUES (?, ?, ?)");
$q -> execute(array($_POST['username'], $_POST['email']
                        ,hash('sha256', $_POST['password'])));

这就是我想要的,将散列密码插入数据库,现在是我的登录脚本;

if ($count == 1 && $info['password'] === hash('sha256', $_POST['password']) 
                && $info['logcount'] != -1) { // successful login

这个语句总是返回 false,我尝试了不同的操作,即 (=, ==),我相信这是一个简单的解决方案。

此外,如果您有任何好的腌制技术,请分享:)

谢谢。

最佳答案

为什么用===做类型检查?也许只是

$info['password'] == hash('sha256', $_POST['password'])

?

关于php - 带有散列密码和用户登录的新手 php 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687149/

相关文章:

php - 在 PHP 中查找以美元符号 $ 开头和结尾的单词

php - 如何将图像与数据库中的记录链接起来?

mysql - 这些以前应该用 MySQL 编写的 SQL 语句现在是 MySQLi 的提示吗?

php - 跨语言开发问题

email - 使用 msmtp 通过终端发送邮件工作正常,但不适用于 php mail()

php - 表单提交 PHP 代码仅在 WordPress 中损坏

ruby - 以非常有效的方式从哈希中获取多个值

使用哈希和哈希引用的 Perl 速度比较

java - HashMap - contains 和 get 方法不应该一起使用

php - 我的sql查询有什么问题?它不存储数据