首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何加密mysql表中已有的列?

如何加密mysql表中已有的列?
EN

Stack Overflow用户
提问于 2012-06-27 19:53:02
回答 6查看 24.2K关注 0票数 1

我有表与密码字段,这是一个纯文本。现在,我想对字段进行加密。怎么办?

EN

回答 6

Stack Overflow用户

发布于 2012-06-27 20:09:23

MySQL有广泛的内置加密功能,你可以在here中找到详细的概述。

你可能想看看AES_DECRYPT()和AES_ENCRYPT()。

代码语言:javascript
运行
复制
INSERT INTO table (mycolumn) VALUES(AES_ENCRYPT('Hello!', 'encryption_key'));
SELECT AES_DECRYPT(mycolumn, 'encryption_key') FROM table;
票数 3
EN

Stack Overflow用户

发布于 2018-01-20 03:46:08

代码语言:javascript
运行
复制
alter table tableName  modify columnNameToBeEncrypted varbinary(200);
update tableName 
set columnNameToBeEncrypted = aes_encrypt(tableName.columnNameToBeEncrypted, 'secretyKey');

首先将要加密的列更新为varbinary类型。这将允许保存加密值。

然后更新表以将加密值存储在适当的位置,如上所示。这将在表中保存加密值。

要查看此值,请使用以下查询:

代码语言:javascript
运行
复制
select *, CAST(aes_decrypt(columnNameToBeEncrypted, 'secretyKey') AS CHAR(40)) from tableName;

上面的SQL查询已经在MySQL上进行了测试。

票数 2
EN

Stack Overflow用户

发布于 2013-03-08 20:40:18

将数据库(仅数据)备份为csv文件。使用以下查询更新具有key的现有字段:

代码语言:javascript
运行
复制
LOAD DATA INFILE 'C:/Sample.csv' INTO TABLE myTable(myname,@mypass) SET mypass=AES_ENCRYPT(@mypass,'key:test');

希望它能解决你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11225574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档