我四处搜索并做了一些测试,但我似乎找不到一种方法来加密和解密非 varchar 数据类型的列。
CREATE TABLE TEMP_ENCRYPT (
TEST_STRING VARCHAR(255),
TEST_INT INT
)
INSERT INTO TEMP_ENCRYPT (TEST_STRING, TEST_INT) VALUES
(DES_ENCRYPT('valor string', '1234'), DES_ENCRYPT('56', '1234'))
select
TEST_STRING as a,
DES_DECRYPT(TEST_STRING, '1234') as aa,
TEST_INT as b,
DES_DECRYPT(TEST_INT, '1234') as bb
from TEMP_ENCRYPT
此选择返回
一个|啊|乙| BB
ÿ£ßû↵gê Tïëß |勇气字符串| 0 | 0
这似乎是一个基本的事情,我做错了什么?
最佳答案
DES_ENCRYPT('56', '1234')
将生成 /+nNpdXyewki
,它无法存储在用于整数的列中,因此它' ll (取决于您的设置)要么存储为 0
要么抛出警告。如果您想存储加密数据,则需要将其存储在支持字符串的列中。
关于mysql - Mysql数据库中非varchar列的加密和解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59737166/