我正在使用Crypto.Cipher AES加密一些用户数据(无密码)。
返回的形式为AESCipher:
b'o \ xab \ xdd \ x19 \ xaat \ xfcIAN \ xd2 \ x00 \ xe9'
有时它会产生空格和非十六进制表示。
b“N%?\ x91 \ xe8'J \ xc0 \ x10 p”
b'QV8> K \ xd8 \ xfa \ x9a \ x05%\ xe8LJp \ xd0gf'
当我尝试将这些值插入到创建的SQL表中时:
data_encrypted VARBINARY(40)
我收到以下警告:
Warning: (1300, "Invalid utf8 character string: 'ABDD19'")
看起来它正在修剪二进制数组,当我查询表中插入的行时,行被有效插入但只有数组的第一个字节,来自b'o \ xab \ xdd \ x19 \ xaat \ xfcIAN \ xd2 \ x00 \ xe9'它只插入'o'。
我是否必须在格式中指定其他内容?
谢谢
添加_binary解决了警告self.cur.execute(“INSERT IGNORE INTO成员VALUES(%s,_ binary%s ...
我也将数组格式化为十六进制表示,它在MySQL表中看起来更好,解密仍然可以正常使用binascii.b2a_hex