首页 > 解决方案 > Mysql数据库中非varchar列的加密解密

问题描述

我四处搜索并做了一些测试,但我似乎找不到加密和解密非 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

这似乎是一个基本的事情,我做错了什么?

标签: mysqlencryption

解决方案


DES_ENCRYPT('56', '1234')将导致/+nNpdXyewki, 它不能存储在用于整数的列中,因此它将(取决于您的设置)存储为0或引发警告。如果要存储加密数据,则需要将其存储在支持字符串的列中。


推荐阅读