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

数据加盐/加密

1.加密算法分类:

1. 对称密码算法 是指加密秘钥和解密秘钥相同的密码算法. 常⻅的对称密码算法有: AES, DES, 3DES,RC4, RC5, RC6 等。

2. ⾮对称密码算法 是指加密秘钥和解密秘钥不同的密码算法. 该算法使⽤⼀个秘钥进⾏加密, ⽤另外⼀个秘钥进⾏解密。

◦ 加密秘钥可以公开,⼜称为 公钥

◦ 解密秘钥必须保密,⼜称为 私钥

常⻅的⾮对称密码算法有: RSA, DSA, ECDSA, ECC 等。

3. 摘要算法 是指把任意⻓度的输⼊消息数据转化为固定⻓度的输出数据的⼀种密码算法. 摘要算法是不可逆的, 也就是⽆法解密. 通常⽤来检验数据的完整性的重要技术, 即对数据进⾏哈希计算然后⽐较摘要值, 判断是否⼀致. 常⻅的摘要算法有: MD5, SHA系列(SHA1, SHA2等), CRC(CRC8, CRC16,CRC32)

2.实现基础加密

问题:

虽然经过MD5加密后的密⽂⽆法解密,但由于相同的密码经过MD5哈希之后的密⽂是相同的,当存储⽤⼾密码的数据库泄露后,攻击者会很容易便能找到相同密码的⽤⼾,从⽽降低了破解密码的难度。因此,在对⽤⼾密码进⾏加密时,需要考虑对密码进⾏包装,即使是相同的密码,也保存为不同的密⽂。即使⽤⼾输⼊的是弱密码,也考虑进⾏增强,从⽽增加密码被攻破的难度。

解决方案:

采⽤为⼀个密码拼接⼀个随机字符来进⾏加密,这个随机字符我们称之为"盐"。假如有⼀个加盐后的加密串,⿊客通过⼀定⼿段这个加密串,他拿到的明⽂并不是我们加密前的字符串,⽽是加密前的字符串和盐组合的字符串,这样相对来说⼜增加了字符串的安全性。.

解密流程:

通过盐值和明文生成的密文,然后把密文和盐值组合,储存在数据库,然后解密的时候先判断出盐值然后在和明文密码使用算法加密,在判断这个加密的字符串和原始数据库中加密的字符串是否一致。

3.简易的代码实现 

public class SecurityUtil {/*** 加密* md5(salt+明文)* @return  盐值 + md5(盐值+明文)*/public static String encrypt(String password){String salt = UUID.randomUUID().toString().replace("-","");String securityPassword = DigestUtils.md5DigestAsHex((salt + password).getBytes(StandardCharsets.UTF_8));return salt+securityPassword;}/*** 验证* 数据库存储的是  盐值 + md5(盐值+明文)* @return*/public static boolean verify(String inputPassword, String sqlPassword){if (!StringUtils.hasLength(inputPassword)){return false;}if (sqlPassword==null || sqlPassword.length()!=64){return false;}String salt= sqlPassword.substring(0,32);  //取出盐值String securityPassword = DigestUtils.md5DigestAsHex((salt + inputPassword).getBytes(StandardCharsets.UTF_8));boolean T = sqlPassword.equals(salt+securityPassword);return T;}
}

相关文章:

  • CentOS 中安装 vim
  • qt中关于思源雅黑字体的使用
  • OpenCV 图形API(43)颜色空间转换-----将 BGR 图像转换为 LUV 色彩空间函数BGR2LUV()
  • 《vue3学习手记4》
  • 《前端面试题之 Vue 篇(第二集)》
  • await 在多线程,子线程中的使用
  • 大模型赋能工业制造革新:10个显效可落地的应用场景
  • 字符设备驱动程序的另一种注册方法
  • IoT FEM射频前端模组芯片(2.4G PA)三伍微电子GSR2401 兼容替代RFX2401
  • 408数据结构绪论刷题001
  • 3.Rust + Axum 提取器模式深度剖析
  • 红宝书第四十九讲:XSS/CSRF攻击防御策略解析
  • 从零上手GUI Guider学习LVGL——Button
  • AI与思维模型——耗散结构思维模型【64】
  • 第十七届“华中杯”大学生数学建模挑战赛题目A题 晶硅片产销策略优化 完整成品 代码 模型 思路 分享
  • 动态规划专题5:最长上升子序列
  • MIX-LN: UNLEASHING THE POWER OF DEEP LAYERS BY COMBINING PRE-LN AND POST-LN
  • 计算生物学在中国的发展情况?
  • C 语言实现 HTTP 和 HTTPS 通信的例程
  • 高度图(Heightmap)
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒
  • 巴基斯坦全面恢复领空开放
  • 央行谈MLF:逐步退出政策利率属性回归流动性投放工具
  • 大四本科生已发14篇SCI论文?重庆大学:成立工作组核实
  • 洞天寻隐·学林纪丨玉洞桃源:仇英青绿山水画中的洞天与身体
  • 《2025城市青年旅行消费报告》发布,解码青年出行特征