mysql - aes_decryption 在 phpmyadmin 中不起作用

标签 mysql phpmyadmin aes

我在 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 我得到以下输出: enter image description here

为什么 phpmyadmin 不显示正确的输出?

最佳答案

aes_decrypt 函数产生二进制数据。 尝试

select cast(aes_decrypt(q,123456) as char) from t LIMIT 0, 30;

在你的 phpMyAdmin 上。

关于mysql - aes_decryption 在 phpmyadmin 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836519/

相关文章:

java Cipher.doFinal() 在使用相同的输入、 key 和 iv 时返回不同的结果

c - 如何使用 MPI 在 C 中修复 AES 解密

mysql - 从 MySQL 导入到 Excel 的 CSV 在日期末尾留下 "/"

php - PDO 一次插入 4 次

java - 我看不懂的加密代码段

MySQL 通过父 ID 加入

phpMyAdmin - 不将 MySQL 查询读取为数字

php - 如何让 PHP 循环通过变量运行?

mysql - MySQL INSERT 时检查表中两个字段没有重复

mysql - 在 MySQL 数据库中按时存储跨度的最佳方法?