我最近在我的 64 位笔记本电脑上安装了 Ubuntu 20.04 LTS。
我还安装了 MySQL。到目前为止,MySQL 上的一切运行良好。但是,我在 AES_ENCRYPT 和 AES_DECRYPT 方面遇到了问题。我使用的代码与在 Windows 10 下的 MySQL 上使用的代码相同,在 Windows 10 下,一切都运行正常。然而,在 Ubuntu 20.04 上,当我尝试解密数据时,我只得到一个十六进制字符串。
The mysql table was created using
create table my_encrypted_control (
encrypted_data varbinary(4096) not null
);
The insert is as follows
insert into my_encrypted_control ( encrypted_data )
values ( aes_encrypt('TEST STRING','funky-boy') );
The select to retrieve and decrypt the data is
select aes_decrypt(encrypted_data,'funky-boy') from my_encrypted_control;
look at the hex data in the result
mysql> select aes_decrypt(encrypted_data,'funky-boy') from my_encrypted_control;
+----------------------------------------------------------------------------------+
| aes_decrypt(encrypted_data,'funky-boy') |
+----------------------------------------------------------------------------------+
| 0x5445535420535452494E47 |
+----------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
只是为了兴趣,我运行了一个未加密的选择,如下所示:
mysql> select * from my_encrypted_control;
+------------------------------------+
| encrypted_data |
+------------------------------------+
| 0xB5300A75B6BDE6C6F3F4E39B76AEF045 |
+------------------------------------+
1 row in set (0.00 sec)
mysql>
注意十六进制/二进制数据!
如何在 Ubuntu 下使用 MySQL 加密和解密数据?