当前位置: 首页> 文旅> 旅游 > 网络推广方案微xiala11_系统开发包括什么_西安seo关键词推广_太原百度关键词排名

网络推广方案微xiala11_系统开发包括什么_西安seo关键词推广_太原百度关键词排名

时间:2025/7/11 10:46:21来源:https://blog.csdn.net/dfg12111/article/details/146080795 浏览次数:0次
网络推广方案微xiala11_系统开发包括什么_西安seo关键词推广_太原百度关键词排名

背景:       

        近期工作中遇到对MySQL表中内容安全要求,需要通过字段内容加密存储的方式来实现。

        为真实测试,如有疑问,欢迎解惑。

        有多种解决办法,可以通过中间件来实现、数据库层来实现,最终选择了AES对称加密的方式:Java加密数据进行保存,MySQL中解密进行范围查询的方式。

        环境:MySQL 8.3版本

        连接工具:DBeaver 22.3

        测试方式:insert语句一个个新增;几个数据量节点进行单条新增、等于查询、大于小于范围查询

        准备工作:

-- 建表语句
CREATE TABLE test_encryption (id INT PRIMARY KEY,data1 VARCHAR(255),data2 VARCHAR(255)
);-- 新增数据
INSERT INTO test_encryption (id,data) VALUES (1, AES_ENCRYPT('num000001', 'your_secret_key'),AES_ENCRYPT('code000001', 'your_secret_key'));
INSERT INTO test_encryption (id,data) VALUES (1, AES_ENCRYPT('num000002', 'your_secret_key'),AES_ENCRYPT('code000002', 'your_secret_key'));
....
INSERT INTO test_encryption (id,data) VALUES (1, AES_ENCRYPT('num400001', 'your_secret_key'),AES_ENCRYPT('code400001', 'your_secret_key'));-- 查询单条语句
select * from test_encryption where AES_DECRYPT(data1, 'your_secret_key') = 'num000022' and AES_DECRYPT(data2, 'your_secret_key') = 'code000022'-- 范围查询语句(大于号、小于号)
select * from test_encryption where 
AES_DECRYPT(data1, 'your_secret_key') > 'num000022' and 
AES_DECRYPT(data1, 'your_secret_key') < 'num020022' and 
AES_DECRYPT(data2, 'your_secret_key') > 'code000022' and 
AES_DECRYPT(data2, 'your_secret_key') < 'code020022'

        共新增40w条数据,中间有部分时间DBeaver工具崩了,导致虽然新增但是无法查看具体时间,所以中间有17.3w~20w和34.6w~40w的新增数据过程。  

        “加密新增全部速度”:前面数据量一列展示的从多少数据到多少数据新增的时间;

        “加密新增一条速度”:到达“数据量”一栏对应的最高值时单独新增一条数据的用时;

        “解密查询一条数据速度”:到达“数据量”一栏对应的最高值时等于查询的速度;

        “解密范围查速度”:到达“数据量”一栏对应的最高值时使用范围查询的速度;

      测试结果如下:

数据量

加密新增全部速度(ms)

加密新增一条速度(ms)

解密查询一条数据速度(ms)

解密范围查速度(ms)

0~2w

58600

3~4

31~41

31~41

2w~3w

29713

3~4

42~52

31~41

3w~10w

216508

3~4

111~145

31~41

17.3w~20w

79599

3~4

225~245

45~56

34.6w~40w

160911

4

445~465

90~105

        我对结果有些疑惑,是因为我范围查限制的条件问题?还是mysql对加密函数的范围查有优化?总感觉查询一条应该比查询范围效率应该会高。

关键字:网络推广方案微xiala11_系统开发包括什么_西安seo关键词推广_太原百度关键词排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: