gpt4 book ai didi

mysql select 在 sha1 哈希密码上返回空

转载 作者:行者123 更新时间:2023-11-29 07:23:40 27 4
gpt4 key购买 nike

我正在测试使用 sha1 进行哈希,并且我已经插入了一行:

insert into tbl_user (username, password, email) values ('maysam', sha1('21lf892'), 'gerdakan.sa@gmail.com');

当我想选择一行时,例如使用:

select * from tbl_user where password = sha1('21lf892');

结果是:

 Empty set (0.00 sec)

但是如果我尝试选择使用用户名:

select * from tbl_user where username  = 'maysam';

+----+----------+--------------------------------+-----------------------+
| id | username | password | email |
+----+----------+--------------------------------+-----------------------+
| 2 | maysam | dd989b1d1d67c6e706852024ccb6a1 | gerdakan.sa@gmail.com |
+----+----------+--------------------------------+-----------------------+

有什么问题吗?为什么它不能选择?(我已经使用 md5 和 sha2 测试了哈希和选择......

最佳答案

sha1 哈希值是 160 位,即以这种方式格式化时为 40 个字符。

您的表似乎将密码列的长度设置为小于此值,因此数据在插入时被截断并且不再等于 sha1('21f892') .

顺便说一句,无盐 SHA1 哈希值是一种非常弱的密码存储方式。更喜欢 bcrypt 或 scrypt 之类的东西。

关于mysql select 在 sha1 哈希密码上返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com