我在mysql数据库中有一个表:
CREATE TABLE IF NOT EXISTS `t` (
`q` varchar(257) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我添加了两个值 - 一个是通过mysql-console,另一个来自phpmyadmin:
insert into t(q) values(aes_encrypt('from phpmyadmin', 123456));
insert into t(q) values(aes_encrypt('from mysql console', 123456));
我试图展示它:
select aes_decrypt(q,123456) from t;
从mysql-console我得到了以下内容:
mysql> select aes_decrypt(q,123456) from t;
+-----------------------+
| aes_decrypt(q,123456) |
+-----------------------+
| from phpmyadmin |
| from mysql console |
+-----------------------+
2 rows in set (0.00 sec)
从phpadmin我得到以下输出:
为什么phpmyadmin没有显示正确的输出?
答案 0 :(得分:10)
aes_decrypt
函数生成二进制数据。
试试
select cast(aes_decrypt(q,123456) as char) from t LIMIT 0, 30;
在你的phpMyAdmin上。