本文主要是介绍mysql对敏感信息数据加解密——工作笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
为保证用户信息安全,对所有涉及到用户敏感信息的字段(比如手机号)在数据库中都要进行密文存储。
既然需求来了那么自然而然要提出解决方案。经过讨论提出了两种加解密方案:
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(根据自己数据量而定) |
这篇关于mysql对敏感信息数据加解密——工作笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!