当前位置: 首页 > 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加密,加密后将密文和盐值组合起来存入数据库中以达到对用户密码加密的结果

相关文章:

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

摘要算法: 同样的明文,经过同样的摘要算法,得到的结果是一样的 验证方法:验证经过摘要算法处理后的结果,如果密文一样那么就认为明文是一样的 //数据库存储的一定是密文,用户输入的是明文;把…...

MySQL基础四(JDBC)

JDBC(重点) 数据库驱动 程序会通过数据库驱动,和数据库打交道。 sun公司为了简化开发人员对数据库的统一操作,提供了一个Java操作数据库的规范。这个规范由具体的厂商去完成。对应开发人员来说,只需要掌握JDBC接口。 熟悉java.sql与javax.s…...

审批流AntV框架蚂蚁数据可视化X6饼图(注释详尽)

大家好,这次使用的是AntV的蚂蚁数据可视化X6框架,类似于审批流的场景等,代码如下: X6框架参考网址:https://x6.antv.vision/zh/examples/showcase/practices#bpmn 可以进入该网址,直接复制下方代码进行调试…...

用Python之requests库调用大模型API实现多轮对话

文章目录 1. 多轮对话实现概述2. 多轮对话全上下文实现3. 多轮对话最近上下文的链式实现4. 总结 1. 多轮对话实现概述 多轮对话功能可以让大模型“拥有记忆”,满足如追问、信息采集等需要连续交流的场景。 AI大模型API 不会记录您的对话历史记录。如果您需要让大模…...

《异步江湖:XHR、Promise 与 Event Loop 的恩怨情仇》

XMLHttpRequest XMLHttpRequest(简称 XHR)是浏览器提供的一个 JavaScript 对象,用于在客户端和服务器之间发送 HTTP 请求。它是实现 AJAX(Asynchronous JavaScript and XML) 技术的核心工具,允许网页在不…...

【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?

https://time.geekbang.org/column/article/118205 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的? 2.4讲了导航相关的流程,那导航被提交后又会怎么样呢? 就进入了渲染阶段。 这…...

蓝桥杯第15届真题解析

由硬件框图可以知道我们要配置LED 和按键、lcd,解决lcd引脚冲突 LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 按键 按键配置,由原理图按键所对引…...

19c rac-expdp备份异常处理

客户反馈,有套19c rac环境,补丁是19.13的,有1个节点使用expdp备份用户异常,报错如下 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production ORA-31626: job does not exist ORA-31637: cannot…...

轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题

这篇博文主要为大家讲解关于sd webui的部署问题,大家有什么不懂的可以随时问我,如果没有及时回复,可联系:1198965922 如果后续大家需要了解怎么用代码调用部署好的webui的接口,可以在评论区留言哦,博主可以…...

20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡为ext4格式

20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡为ext4格式 2025/3/4 16:47 缘起:128GB的TF卡,只能格式化为NTFS/exFAT/ext4。 在飞凌的OK3588-C下,NTFS格式只读。 exFAT需要改内核来支持。 现在只剩下ext4了。 linux R4默认不支持exFAT…...

AIP-159 跨集合读

编号159原文链接AIP-159: Reading across collections状态批准创建日期2019-07-26更新日期2019-07-26 有时,用户需要跨集合检索资源,或者在不知道资源所在集合的情况下检索单个资源。 指南 API 可以 在标准 List 方法中允许用户使用 - (连…...

C++进阶(七)--STL--bitset(位图)的介绍与基本功能模拟实现

文章目录 引入1.位图的介绍1.1位图的概念1.2位图的应用1.3bitset的基本使用bitset的定义方式bitset成员函数的使用 2.位图的基本模拟实现2.1基本结构2.2构造函数2.3set函数2.4reset2.5test 3.位图考察题目3.1只出现⼀次的整数?3.2找到两个文件交集?3.3出…...

清北deepseek8本手册

“清北手册”通常是“清华大学和北京大学推出的DeepSeek手册”的简写。近期,随着AI技术的迅速发展,清北两高校陆续发布多本自家的DeepSeek学习手册,助力普通人学习进阶。 清华大学的DeepSeek手册已推出5册,内容丰富全面&#xff0…...

如何将Promise.then中的值直接return出来

Promise 如何返回值,而不是返回 Promise 对象。实际开发中使用封装好的异步请求函数,为什么调用该函数返回的值一直都是 undefined。 一、需求 定义一个 foo 函数,在里面执行异步操作,然后取得 Promise.then 中的值并 return 出来…...

利用golang embed特性嵌入前端资源问题解决

embed嵌入前端资源,配置前端路由的代码如下 func StartHttpService(port string, assetsFs embed.FS) error {//r : gin.Default()gin.SetMode(gin.ReleaseMode)r : gin.New()r.Use(CORSMiddleware())// 静态文件服务dist, err : fs.Sub(assetsFs, "assets/di…...

SPI驱动(二) -- SPI驱动程序模型

文章目录 参考资料:一、SPI驱动重要数据结构1.1 SPI控制器数据结构1.2 SPI设备数据结构1.3 SPI驱动数据结构 二、SPI 驱动框架2.1 SPI控制器驱动程序2.2 SPI设备驱动程序 三、总结 参考资料: 内核头文件:include\linux\spi\spi.h 一、SPI驱…...

【无标题】FrmImport

文章目录 前言一、问题描述二、解决方案三、软件开发(源码)四、项目展示五、资源链接 前言 我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的…...

深入浅出 Go 语言:协程(Goroutine)详解

深入浅出 Go 语言:协程(Goroutine)详解 引言 Go 语言的协程(goroutine)是其并发模型的核心特性之一。协程允许你轻松地编写并发代码,而不需要复杂的线程管理和锁机制。通过协程,你可以同时执行多个任务,并…...

vLLM代码推理Qwen2-VL多模态

由于近期代码微调以及测试都是在远程服务器上,因此LLamafactory-cli webui 以及vLLM的ui均无法使用,因此不断寻求解决方案,我提供一个解决方案,LLamafactory微调完成的模型需要合并为一个完整模型后再使用vLLM进行代码推理测试微调…...

DNS云解析有什么独特之处?

在数字化浪潮中,每一次网页点击、视频加载或在线交易背后,都依赖着域名系统(DNS)的高效运转。传统DNS架构的局限性(如单点故障、延迟高、安全脆弱)在云计算时代被彻底颠覆,DNS云解析作为新一代解…...

抖音下载器终极实战指南:高效批量下载与去水印的完整解决方案

抖音下载器终极实战指南:高效批量下载与去水印的完整解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…...

脉冲神经网络(SNN)稀疏计算加速与RISC-V优化实践

1. 脉冲神经网络与稀疏计算加速概述 脉冲神经网络(SNN)作为第三代神经网络模型,其最大特点是采用生物神经元类似的脉冲信号进行信息传递。与传统人工神经网络(ANN)的连续激活不同,SNN只在膜电位达到阈值时才…...

原来选对床垫竟然这么重要?2026年内行都推荐这几款

原来选对床垫竟然这么重要?2026年内行都推荐这几款在追求高质量生活的今天,一个舒适的睡眠环境变得越来越重要。而床垫作为睡眠质量的关键因素之一,选择一款合适的床垫显得尤为重要。本文将探讨如何选择适合自己的床垫,并推荐几款…...

创业团队如何借助Taotoken的多模型与透明计费快速验证AI产品原型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 创业团队如何借助Taotoken的多模型与透明计费快速验证AI产品原型 对于资源有限的创业团队而言,在产品开发初期快速验证…...

长期使用Taotoken聚合API在服务稳定性方面的体验分享

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken聚合API在服务稳定性方面的体验分享 作为一家长期依赖大模型能力进行产品开发的团队,我们在过去数月里…...

VMware Unlocker终极指南:3分钟免费解锁macOS虚拟机支持

VMware Unlocker终极指南:3分钟免费解锁macOS虚拟机支持 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 想要在Windows或Linux电脑上体验macOS系统,却苦于VMware没有苹果选项&am…...

Linux巡检报告生成实战指南

Linux巡检报告生成实战指南本文面向具备一定 Linux 基础的技术人员,围绕巡检报告生成展开,重点讨论检查汇总、异常标记和结果归档。在中级运维和系统管理工作中,这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在一起…...

泉州某卫浴GEO优化实战:四标融合+场景化方法论,从搜索不可见到AI优先引用

我们在服务制造业企业的过程中发现一个根本性变化:过去大家关心“怎么让用户搜到我”,现在AI直接生成答案,企业真正的挑战变成了“怎么让AI准确信任我、优先引用我”。传统SEO在AI的“黑箱”面前越来越失效,企业必须重新建立一套可…...

从入门到精通:wrk压力测试实战与性能调优全攻略

1. 为什么你需要wrk压力测试工具 第一次接触性能测试时,我像大多数开发者一样,用浏览器刷新页面来"感受"系统快慢。直到某次上线后服务器崩溃,才明白这种原始方法有多不靠谱。后来发现wrk这个工具,它彻底改变了我的性能…...

NTN 长距离通信领域亮相

核心蜂窝解决方案亮相并带来Nordic NTN 核心解决方案深度分享。环节将全面解析 nRF9151 模组的核心特性与技术优势,详解卫星星座生态布局及 nRFCloud 平台的应用价值,为参会者勾勒 NTN 技术的整体框架与商业落地前景,为后续内容奠定专业基础。…...