【发布时间】:2018-10-03 00:25:56
【问题描述】:
一个奇怪的问题不知道如何解决。 我无法根据存储在数据库中的散列密码验证用户密码
在 MySQL 中,在插入用户数据之前,我对密码进行哈希处理,然后将其存储在用户表中,但是当用户尝试使用相同的密码登录时,我在将用户密码与用户中已经哈希过的密码进行哈希处理后检查用户密码表结果不一样
这里是触发器
DELIMITER $$
DROP TRIGGER IF EXISTS validateNewUserInsert$$
CREATE DEFINER=`evolve`@`localhost` TRIGGER `validateNewUserInsert`
BEFORE INSERT ON user FOR EACH ROW
BEGIN
CALL validateNewUser(NEW.username, NEW.user_email);
SET NEW.password = sha2(123, 256);
END$$
DELIMITER ;
例如: '123' 触发器中散列的结果是 a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa
================================================ ====
select sha2('123', 256);
但是在触发器外部对相同输入“123”进行散列时的结果是 a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
为什么不一样?当他尝试登录时,我如何验证用户输入
【问题讨论】: