我试图用ENCODE()函数编码一个简单的字符串。使用字符串,它给我文本作为输出。但是使用一个字段它给了我BLOB。如何绕过BLOB并输出编码字段的文本?
以下是发生的事情:
SELECT ENCODE('myText,'myPw')
- 输出:baddade4b04e // 目标=此+使用字段名
SELECT ENCODE(Field,'myPw') FROM myTable
- 输出:[BLOB - 14B]
我尝试了什么:
SELECT CAST(ENCODE(Field,'myPw') AS CHAR(1000) CHARACTER SET utf8) FROM myTable
- 输出:空行!
SELECT CONVERT(ENCODE(Field,'myPw') USING utf8) FROM myTable
- 输出:%(输出为1-2个字符,不能正确)
想象一下,我有一个专栏user
。现在我希望“PaulPeter”编码相同,无论Im编码字符串“PaulPeter”还是字段user
,其值为“PaulPeter”。
有人可以向我解释一下吗?非常感谢!
加密字符串:
加密字段:
MySQL-Client-Version:5.5.41
user
: text utf8_bin
修改
我根据解码得到了另一个问题:Click
能够编码之后,我在AES_Encryption中遇到了同样的问题。当我加密字符串时,我得到输出为字符串。当用字符串值加密字段时,我得到blob。 :(完全讨厌。
答案 0 :(得分:0)
您的用户列的类型为TEXT。尝试将该列仅转换为CHAR:
SELECT AES_ENCRYPT(CAST(Field AS CHAR(1000)),'myPw') FROM myTable