Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL AES_解密密码与普通密码不匹配_Mysql - Fatal编程技术网

MySQL AES_解密密码与普通密码不匹配

MySQL AES_解密密码与普通密码不匹配,mysql,Mysql,我相信这会很平庸,但我不明白 我有一个用户表: CREATE TABLE tbl_users ( usr_id INT NOT NULL AUTO_INCREMENT , usr_name VARCHAR( 64 ) NOT NULL DEFAULT '' , usr_surname VARCHAR( 64 ) NOT NULL DEFAULT '' , usr_pwd BLOB NOT NULL , usr_level INT

我相信这会很平庸,但我不明白

我有一个用户表:

CREATE TABLE tbl_users (
  usr_id        INT NOT NULL AUTO_INCREMENT ,
  usr_name      VARCHAR( 64 ) NOT NULL DEFAULT '' ,
  usr_surname   VARCHAR( 64 ) NOT NULL DEFAULT '' ,
  usr_pwd       BLOB NOT NULL ,
  usr_level     INT( 1 ) NOT NULL DEFAULT 0,
  PRIMARY KEY ( usr_id )
) ENGINE = InnoDB;
有一项记录:

INSERT INTO tbl_users ( usr_id, usr_name, usr_pwd, usr_level )
VALUES (NULL, 'SU', AES_ENCRYPT('SU', SHA2('MyPwd', 512)), 2);
现在,如果我运行此查询(在phpMyAdmin中),我将获得我的记录:

SELECT usr_id, usr_name, usr_surname, usr_level, 
       AES_DECRYPT(usr_pwd, SHA2('MyPwd', 512)) as usr_pwd
FROM tbl_users 
WHERE usr_name='SU';
但是如果我添加密码检查,我会得到一个空的结果集:

SELECT usr_id, usr_name, usr_surname, usr_level, 
       AES_DECRYPT(usr_pwd, SHA2('MyPwd', 512)) as usr_pwd
FROM tbl_users 
WHERE usr_name='SU' and usr_pwd='SU';

我错在哪里?

您将试图访问的列别名为列名,我不知道这是否是问题所在,但阅读/理解起来很混乱。@Matthew我第一次做了同样的假设,但将别名更改为其他名称没有任何效果。我建议加密输入密码。好的,但是,除了最佳实践之外,为什么SQL查询不起作用?