如何加密MySQL数据库中的现有列数据?

问题描述 投票:0回答:2

我们计划为数据库中的少数现有列添加加密。

使用Spring Data JPA,我们能够按照以下链接对列数据进行加密和解密:

https://github.com/sunitk/generic-jpa-converter-encrypt-decrypt

但是那些列有旧数据。因此,在使用上面的加密和解密逻辑之前,我们需要加密现有的列数据。

spring-boot encryption spring-data-jpa aes
2个回答
0
投票

最简单的方法是进行本地复制,加密数据,使用新加密的数据更新旧的未加密数据。


0
投票

可用最小的字段级AES和DES加密:https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_encrypt

在不为每个查询指定键的情况下读取数据(或未将其添加到触发器/过程)。

示例:

INSERT:

INSERT INTO users (username, password) VALUES ('root', AES_ENCRYPT('somepassword', 'key12346123'));
and SELECT:

SELECT AES_DECRYPT(password, 'key12346123') FROM users WHERE username = 'root';
Also, this requires SSL connection to the database.

并且在较低级别上,您也可以加密文件系统。

这里很好解释https://serverfault.com/questions/538715/whats-a-good-way-to-encrypt-a-mysql-database-and-is-it-worth-it

© www.soinside.com 2019 - 2024. All rights reserved.