mariadb 错误1366(22007):不正确的字符串值:“CBA/...”

bgibtngc  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(231)

我正在尝试加密mariadb表中的数据,但它给我错误。请找到下面的详细信息,并帮助我解决它。

表信息:

+-------+--------------+------+-----+---------+-------+
Field   Type    Null    Key Default Extra
+-------+--------------+------+-----+---------+-------+
data    varchar(250)    YES     NULL    
+-------+--------------+------+-----+---------+-------+

插入数据时出错:

MariaDB [mydb]> insert INTO test (data) VALUES (aes_encrypt('mydata','key123456'));

错误1366(22007):不正确的字符串值:'\xAB\xB8\xA3\xCBA/...'用于第一行'mydb'列'测试'数据'

MariaDB版本

mariadb Ver 15.1 Distrib 10.5.15-MariaDB,适用于debian-linux-gnu(aarch 64),使用编辑行 Package 器

操作系统详细信息

Linux raspberrypi 5.15.32-v8+ #1538 SMP抢占星期四3月31日19:40:39英国夏令时2022 aarch 64 GNU/Linux

vnzz0bqm

vnzz0bqm1#

aes_encrypt函数的结果总是二进制的,并且必须存储为二进制。这意味着必须将列定义为varbinary()或blob类型。
aes_encrypt使用带填充的ECB加密,因此二进制列必须始终定义为大于字符串的最大长度:变量二进制大小= 16 *((int)(最大字符串大小/ 16)+ 1)

**提示:**MariaDB的aes_encrypt()实现使用128位密钥。较短的密钥将被异或和填充,这降低了安全性。

相关问题