mysql对敏感信息数据加解密——工作笔记

本文介绍了在MySQL中对敏感信息如手机号进行加密存储的两种方案:AES和DES,并通过测试比较了它们在Update、Insert和Select操作中的性能。AES在性能上优于DES,且对整体tps影响较小。在编码实现上,利用MyBatis的全局变量减少改造工作量,但过程中遇到了中文乱码和字段长度匹配的问题,并给出了相应解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为保证用户信息安全,对所有涉及到用户敏感信息的字段(比如手机号)在数据库中都要进行密文存储。
既然需求来了那么自然而然要提出解决方案。经过讨论提出了两种加解密方案:

AES加解密方案:AES_ENCRYPT() / AES_DECRYPT()
DES加解密方案:DES_ENCRYPT() / DES_DECRYPT()

比如对PHONE字段进行加密,那就在数据库中新增两个字段:PHONE_AES, PHONE_DES,字段类型:varbinary(32)

方案提出后交由测试部门对两种方案进行压测实验,测试部门给出的压测结论是:
Update对比:加密和未加密的整体tps变化不大,且AES加密比DES的性能表现优异,都比不加密稍差。
Insert对比:加密比未加密插入的TPS稍低一些,且AES的TPS、CPU占用等比DES好。
Select对比:使用AES加密、DES加密查询性能都稍差于未加密,AES的CPU等指标强于DES。
总结:使用AES加密相对不加密的性能变化不大,且AES略好于DES加密方式的性能。

具体如何压测请自行搞定,这里只提供个思路:

测试目标 测试数据库对字段加解密的性能
测试对象 tableName
数据量 8000w(根据自己数据量而定)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值