当前位置: 首页 > news >正文

灵台县住房和城乡建设局网站大数据网站

灵台县住房和城乡建设局网站,大数据网站,wordpress 获取主题路径,专门做问卷的调查的网站文章目录 前言沙雕方案内存加载解密密文映射表 常规做法实现数据库加密算法参考 分词组合加密(推荐) 超神方案总结个人简介 前言 在数据安全性和查询效率之间找到平衡是许多数据管理系统所面临的挑战之一。特别是在涉及加密数据的情况下,如何…

文章目录

  • 前言
  • 沙雕方案
    • 内存加载解密
    • 密文映射表
  • 常规做法
    • 实现数据库加密算法
      • 参考
    • 分词组合加密(推荐)
  • 超神方案
  • 总结
  • 个人简介

前言

  • 在数据安全性和查询效率之间找到平衡是许多数据管理系统所面临的挑战之一。特别是在涉及加密数据的情况下,如何进行模糊查询变得更加复杂。在本文中,我们将探讨三种不同进阶方法:沙雕、常规和超神做法。

沙雕方案

内存加载解密

  • 将所有数据加载到内存中进行解密,然后通过程序算法来模糊匹配。这种做法效率低下,且不安全,因为涉及将所有数据加载到内存中,存在内存溢出和数据泄露的风险。
  • 一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间,用DES来举例,13800138000 加密后的串 HE9T75xNx6c5yLmS5l4r6Q== 占24个字节:

密文映射表

  • 将密文数据映射一份明文映射表,然后通过模糊查询明文映射表来关联密文数据。这种方法会暴露明文映射表,导致数据安全性降低。
  • 我们本质是为了数据安全才进行加密,这种方案属实是掩耳盗铃,多此一举。

常规做法

实现数据库加密算法

  • 在数据库底层实现数据加解密算法,在模糊查询的时候使用 decode(key) like '%partial% 进行查询。
  • 本方案看着不错,但是存在一个很大的问题,就是通用性不强,在使用多种类型数据库时,函数需要重新定义,且使用的方式也不一定兼容,可拓展性、可移植性较差。

参考

  • MySQL 自定义函数:https://zhuanlan.zhihu.com/p/128744140

分词组合加密(推荐)

  • 对密文数据进行分词组合,然后将分词组合的结果集分别进行加密,存储到扩展列中。查询时通过解密函数进行模糊匹配。这种方法在保证数据安全性的同时,也保证了查询的效率。
  • 但是我们都知道数据加密后长度会变长,出于成本、性能、安全的考虑,模糊查询的子句一般限制为:子句长度必须大于等于4个英文/数字,或者2个汉字
  • 比如国内很多互联网大厂都是使用类似的方案:
  • 阿里密文字段检索方案:https://jaq-doc.alibaba.com/docs/doc.htm?treeId=1&articleId=106213&docType=1#s1
  • 淘宝密文字段检索方案:https://open.taobao.com/docV3.htm?docId=106213&docType=1

超神方案

  • 除上面提到的方案之外,我们还可以从算法层面设计一种加密算法来支持直接进行模糊匹配,但是整体设计难度、成本都过于复杂,一般实践中基本不会考虑这种方案。
  • 下面是一些参考资料,有兴趣的朋友可以看一下:
  • 支持快速查询的数据库如何加密:https://www.jiamisoft.com/blog/5961-kuaisuchaxunshujukujiami.html
  • 基于Lucene的云端搜索与密文基础上的模糊查询:https://www.cnblogs.com/arthurqin/p/6307153.html

总结

  • 通过本文的介绍和示例,我们可以更好地理解不同方法在加密数据的模糊查询中的应用和实现方式。选择合适的方法取决于数据安全性、查询效率和实现难度等因素的综合考量。

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

http://www.hkea.cn/news/724193/

相关文章:

  • 仿网站上的焦点图在线看seo网站
  • 做网站的业务员艾滋病阻断药有哪些
  • web集团网站建设广告投放平台有哪些
  • 大连做网站建设广告资源对接平台
  • 做网站怎么写工作日志泉州网站seo公司
  • wordpress外链站内打开搜索引擎是什么意思啊
  • 做论坛网站需要什么备案新站seo优化快速上排名
  • 动漫网站html百度网盘搜索
  • 怎么看一个网站什么语言做的宝鸡seo培训
  • 数据库网站建设公司他达拉非片
  • 英文商城网站建设搜索引擎营销的特点
  • 易优建站系统图片百度搜索
  • 网站开发不用框架web网站设计
  • 技能网站建设项目需求武汉网络推广外包公司
  • 安卓市场下载手机版优化网站排名技巧
  • 建设网站平台哪个好互联网营销外包推广
  • 工商注册企业名称查询广东seo网站推广代运营
  • 中纪委网站两学一做征文资源平台
  • java高端网站建设现在广告行业好做吗
  • wordpress 制作下载优化关键词怎么做
  • 宁波网站建设哪个公司好百度爱采购推广怎么入驻
  • 重庆市建设工程信息网特种作业企业网站seo多少钱
  • 域名备案做电影网站制作免费个人网站
  • 公司网络营销方案优化设计七年级上册数学答案
  • 网站建设策划方案网址搜索引擎
  • 艺术培训学校系统网站怎么做百度优化是什么
  • 自己的网站做飘窗百度推广账号登录入口
  • 国内好的网站建设国内外十大免费crm软件推荐
  • 淄博品质网站建设百度销售推广
  • 网站建设学习内容网站模板哪家好