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

如何实现对用户密码的加密

摘要算法:

同样的明文,经过同样的摘要算法,得到的结果是一样的

验证方法:验证经过摘要算法处理后的结果,如果密文一样那么就认为明文是一样的

//数据库存储的一定是密文,用户输入的是明文;把用户输入的明文经过MD5处理后和数据库的内容进行对比,结果一样就认为密码正确

网站解密MD5的原理是将一些较常见的密码经过MD5处理后的结果存储下来之后再与我们输入的需要解密的MD5数据进行比对达成的

盐值 salt

明文+salt=复杂明文,再将复杂明文进行MD5加密

在随机盐值的基础上如何进行验证:待验证的明文+这个随机盐值在进行MD5加密之后和数据库的密文进行对比//用户注册时要把这个随机盐值存储下来

@Slf4j
public class SecurityUtils {public static String encrypt(String password) {String salt= UUID.randomUUID().toString().replace("-","");String securityPassword= DigestUtils.md5DigestAsHex((salt+password).getBytes());String finalPassword=salt+securityPassword;return finalPassword;}public static boolean verify(String inputPassword, String sqlPassword) {if(sqlPassword==null||sqlPassword.length()!=64){log.error("数据库中的密码格式不对");return false;}String salt=sqlPassword.substring(0,32);String secretPassword=DigestUtils.md5DigestAsHex((salt+inputPassword).getBytes());return sqlPassword.equals(salt+secretPassword);}
}

因为有些用户的密码设置的较为简单,所以应该先加一个随机盐值之后再组合起来进行MD5加密,加密后将密文和盐值组合起来存入数据库中以达到对用户密码加密的结果

http://www.lryc.cn/news/547055.html

相关文章:

  • MySQL基础四(JDBC)
  • 审批流AntV框架蚂蚁数据可视化X6饼图(注释详尽)
  • 用Python之requests库调用大模型API实现多轮对话
  • 《异步江湖:XHR、Promise 与 Event Loop 的恩怨情仇》
  • 【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
  • 蓝桥杯第15届真题解析
  • 19c rac-expdp备份异常处理
  • 轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题
  • 20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡为ext4格式
  • AIP-159 跨集合读
  • C++进阶(七)--STL--bitset(位图)的介绍与基本功能模拟实现
  • 清北deepseek8本手册
  • 如何将Promise.then中的值直接return出来
  • 利用golang embed特性嵌入前端资源问题解决
  • SPI驱动(二) -- SPI驱动程序模型
  • 【无标题】FrmImport
  • 深入浅出 Go 语言:协程(Goroutine)详解
  • vLLM代码推理Qwen2-VL多模态
  • DNS云解析有什么独特之处?
  • 视频流畅播放相关因素
  • Python实现一个类似MybatisPlus的简易SQL注解
  • linux一些使用技巧
  • 小模型和小数据可以实现AGI吗
  • io学习----->文件io
  • kubernetes介绍
  • 如何高效准备PostgreSQL认证考试?
  • 如何使用Briefing打造私有视频会议系统结合内网穿透异地远程连接
  • XHR请求解密:抓取动态生成数据的方法
  • 坐标变换介绍与机器人九点标定的原理
  • 串口调试助手Alien v5.198新版发布