当设置密码条件为空时,将返回空集合。

7 浏览
0 Comments

当设置密码条件为空时,将返回空集合。

我在mysql中是个新手

我已经向我的表customer插入了值

INSERT INTO customer(f_name, l_name, mobilehp, username, password)

VALUES

('Ahmad', 'Ali', '013-5404997', 'A_Ali', SHA('something'));

然后我插入了一个条件,

select customer_id, f_name FROM customer WHERE password=SHA('something');

然而查询返回了一个空集,这很奇怪,因为它应该显示customer_id和f_name。所以任何帮助将不胜感激。谢谢

0
0 Comments

问题的出现原因是在使用SHA1加密算法作为密码存储时,可能会导致返回空集。解决方法是使用更安全的密码哈希算法,如password_hash或其他加密算法。

在给定的代码示例中,查询语句使用SHA1加密的密码作为条件进行查询。然后,可以通过检查密码来验证用户的身份。

然而,需要注意的是,即使SHA1不应该被使用,这并不能解释为什么两个查询语句不起作用。

为了解决这个问题,可以参考以下链接中的评论和文档:

- https://www.php.net/manual/en/function.password-hash.php

- https://www.php.net/manual/en/function.password-verify

0