mysql - 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
这似乎是一个基本的事情,我做错了什么?
解决方案
DES_ENCRYPT('56', '1234')
将导致/+nNpdXyewki
, 它不能存储在用于整数的列中,因此它将(取决于您的设置)存储为0
或引发警告。如果要存储加密数据,则需要将其存储在支持字符串的列中。
推荐阅读
- apache-spark - 为什么在 S3 存储桶中加载 CSV 文件的任务很多?
- python - 如何提高效率 - 应用熊猫(从行值中查询相同的数据框)
- nativescript - 如何使用 htmltopdf nativescript 插件将页眉和页脚添加到 pdf 文档上的每个呈现页面
- ios - 必须将 AirGoogleMaps 目录添加到您的 xCode 项目以支持 iOS React Native 上的 GoogleMaps
- r - 如果时间跨度与小时重叠,则创建 24 列和一个虚拟列
- php - 来自 2 列的日期差异
- spring-boot - Neo4j @Relationship 总是返回 null
- typescript - 打字稿:设置“node_modules”目录路径
- c# - 无法使用 C# 服务打开 xls 文件
- c# - 如何使用 Asp.NetCore 和 Angular 下载文件