前言
这几天碰到一个需求:
需要将mysql里面的敏感数据(手机号码、住址、身份证号码等信息)加密存储。问题是当前数据库里面已经有一定量的数据存在。我需要将数据库里面的数据重新加密。我采用的是aes加密。
写个博客记录一下处理过程,以便之后查看。如有 错误,请各位指正!!
解决过程
在这里我就只拿其中一张表来说了。
-
表结构如下 :
这里主要要加密的字段是user_id和id_acrd。
user_id是手机号码
id_card是身份证号码 -
使用的方法 :
数据库自带的加密和解密方法
message代表需要加密的信息
key代表加密使用的秘钥AES_ENCRYPT(message,key) AES_DECRYPT(message,key)
-
**注意事项 **:
在使用加密算法之前需要更改表的对应字段的类型。修改结束之后的表结构如下:
更改类型后看数据你会发现mysql会显示blob,无法查看数据。你可以打开备注功能来查看blob类型的数据。如下图: