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

【JavaEE进阶】-- 加密算法

在数据库中通常存放一些用户的隐私信息,这些隐私信息通常不可以将其明文存放:
1. 代码角度:代码bug漏洞可能会导致数据泄漏。
2. 管理角度:管理员有权限查看数据表的数据,有可能会直接泄漏表数据。

以登陆的场景来进行说明下面三种加密算法:

1. 对称加密

常见的对称加密方式:AES、3DES。

对称加密重要的是要有一个密钥

加密: 明文 + 密钥 得到一个加密结果。

登录时解密:

  1. 从数据库中获取到加密结果。
  2. 加密结果通过密钥解密得到明文。
  3. 对比用户输入的明文和解密出来的明文。

安全性:
密钥一般是写在代码中、配置项中、启动参数中,都有可能会造成密钥的泄漏。如果我们对称加密的密钥泄漏了被一些别有用心的人拿到,他可能会采用暴力的方式,使用包含所有字符串的表,通过我们的密钥进行加密得到一个结果表,通过结果表和数据库中的数据进行对比,就很容易得到这些隐私数据的明文。

在这里插入图片描述

2. HASH加密

常见的HASH加密有:MD5、SHA256。

HASH加密是不可逆的。意思就是通过HASH加密的结果不能解密出来明文。

**加密:**拿到明文通过HASH加密的方式得到一个加密结果,将这个结果存放到数据库中。

登录:

  1. 根据用户登陆时输入的明文进行HASH处理,生成一个加密结果1。
  2. 从库中获取加密结果2。
  3. 对比加密结果1和2。

安全性:
哈希算法是固定的,一个相同的字符串哈希出来的结果都是相同的。

那么使用hash算法生成一张结果表, 和数据库中的密文进行对比也很容易将其破解。

在这里插入图片描述

3. 加盐HASH

盐是什么: 对于后端来说,盐就是一个生成的固定长度的随机数。

加密:

  1. 根据明文进行HASH处理,得到加密结果。
  2. 生成盐。
  3. 加密结果和盐进行拼接。
  4. 将拼接后的加密结果和盐都存放到数据库中。

登录:

  1. 对用户输入的明文进行HASH,得到加密结果。
  2. 从库中获取盐。
  3. 加密结果和盐进行拼接,生成最终加密结果。
  4. 将最终加密结果和库中的加密结果进行对比。

安全性:
此时使用暴力破解的方式的成本就会变的非常高。

经过HASH得到彩虹表之后,还会有一张盐表,在进行暴力破解的时候,需要用彩虹表中的每一项和盐表中的所有项进行组合。

在这里插入图片描述

更加安全的方式:
可以在HASH加盐的基础上,对盐再进行一次哈希,或者将最终的HASH结果再进行一次HASH。

http://www.dtcms.com/a/597649.html

相关文章:

  • 58同城本地版下载优化设计高中
  • 入门|利用 Highcharts 的 ES6/ESM 模块安装方案
  • 【NGINX的学习】
  • 重庆南坪网站建设公司学校网站总务建设
  • C++ yjx
  • 网站开发原型 图站长工具星空传媒
  • 【C++进阶】C++中的继承
  • 【大模型量化】Qwen3-VL + Lora监督微调 + 4bit量化 | VLM模型
  • 哪个网站最好微信开发者文档小程序
  • 免费黄页网站互联网众筹网站怎样建设
  • Math for Grade 1 of junior high school
  • 卓手机建网站有没有专门找装修公司的网站
  • Goer-Docker系列-1-Dockerfile的构建速度优化
  • 【20251029】如何在Ubuntu虚拟机部署本地sql,redis
  • SQL注入之SQLMAP绕过WAF(安全狗)
  • 西安注册公司网站黄页是什么东西
  • BFF 相关学习
  • 【SAA】SpringAI Alibaba学习笔记(三):ChatModel对话记忆存储和持久化
  • Excalidraw绘图软件
  • 苹果ios系统共享的ipa文件应用app签名怎么用?
  • 潍坊网站开发培训电影网站空间配置
  • 鸿蒙ef_crypto-加密组件-SM2Sync
  • windows 下的paddle ocr 部署
  • 融合之道:电科金仓数据库的“五化一体“革命
  • 微楼书网站建设全球推广
  • AR眼镜基于上下文智能识别:电力运维高效规范操作应用方案|阿法龙XR云平台
  • Linux 文件基本属性
  • 广州做外贸网站dw网页制作成品12页
  • 甘肃省两学一做专题网站哔哩哔哩网页入口
  • PostgreSQL 监控告警实战:从 “高并发卡顿才发现” 到 “提前 1 小时预警” 的守护指南