前端加密后端校验(MD5)

前端加密后端校验(MD5)

因为md5是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。因此校验可以比较加密之后的密文是否相同。

前端

md5

加密工具类(js):
https://pan.baidu.com/s/1Nk2HN1-DThPdTZeXKDxNoA
提取码: gaa5

使用案例

......
<form id="postForm" autocomplete="off" method="post" th:object="${credential}" onsubmit="return verify()">
......
</form>
......
<script th:src="@{/js/crypto-js.js}"></script>
<script type="text/javascript">function verify() {var password= $("#password").val();var md5Password=CryptoJS.MD5(password).toString();$('#password').val(md5Password);document.getElementById('postForm').submit();}
</script>
......

后端

DigestUtils 是 Apache Commons Codec 库中的一个类,它提供了一组用于生成消息摘要(hash)的实用方法。这个库广泛用于处理编码和解码,而 DigestUtils 主要用于处理消息摘要的生成。

以下是 DigestUtils 的一些常见用法:
生成 MD5 摘要:

import org.apache.commons.codec.digest.DigestUtils;String input = "Hello, World!";
String md5Digest = DigestUtils.md5Hex(input);

生成 SHA-1 摘要:

import org.apache.commons.codec.digest.DigestUtils;String input = "Hello, World!";
String sha1Digest = DigestUtils.sha1Hex(input);

生成 SHA-256 摘要:

import org.apache.commons.codec.digest.DigestUtils;String input = "Hello, World!";
String sha256Digest = DigestUtils.sha256Hex(input);

使用流生成摘要:

import org.apache.commons.codec.digest.DigestUtils;InputStream inputStream = // obtain your input stream
String md5Digest = DigestUtils.md5Hex(inputStream);

这些方法返回以十六进制表示的消息摘要,通常以字符串的形式呈现。DigestUtils 支持 MD2、MD5、SHA-1、SHA-256、SHA-384 和 SHA-512 等算法。

确保你的项目包含 Apache Commons Codec 库的依赖,以便使用 DigestUtils 类。例如,Maven 项目可以在 pom.xml 文件中添加以下依赖:
引入依赖

<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.15</version> <!-- 使用最新版本 -->
</dependency>

拓展:
Java 加解密工具类:https://blog.csdn.net/qq_34253002/article/details/131491945
RSA密钥生成与使用:
https://tool.4xseo.com/a/4646.html
Java RSA 加密解密工具类 RSAUtil 支持长文本加密解密(密钥对生成、公钥加密、私钥加密、公钥解密、私钥解密):
https://blog.csdn.net/m0_53022813/article/details/134002547

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java8中的流如何正确使用?

Java 8引入的流&#xff08;Stream&#xff09;是一种强大而灵活的处理数据集合的方式。流提供了一种声明性的编程风格&#xff0c;使得对数据的操作更为简洁和可读。以下是一些关于如何正确使用Java 8中的流的建议&#xff1a; 创建流&#xff1a; 使用Collection接口的stream…

翻译: 负责任的人工智能 Responsible AI

负责任的人工智能指的是以道德、值得信赖和社会负责任的方式开发和使用人工智能。许多开发者、企业和政府都关心这一点&#xff0c;并且一直在进行对话&#xff0c;也在努力确保人工智能的构建和使用是负责任的。由于对负责任的人工智能的所有这些关注和努力&#xff0c;我们在…

信息收集 - 端口

端口 -简介 端口是计算机网络中用于标识特定应用程序或服务的数字标识符。当计算机之间进行通信时,数据传输通过端口进行。每个端口都有一个唯一的数字值,范围从0到65535。 端口分为三类: 知名端口(Well-known Ports):范围从0到1023,这些端口通常被系统或公共服务使用。…

2. 运算符和表达式

2. 运算符和表达式 ​ 在Java中&#xff0c;使用算术运算符、-、*、/表示加、减、乘、除运算。 ​ 当参与/运算时&#xff0c;两个操作数都是整数时&#xff0c;表示整除法&#xff1b;否则表示浮点除法。 ​ 整数的求余操作&#xff08;取模&#xff09;用%表示。例如&…

求解器的可行解存在一个允许的误差范围

在模型计算中&#xff0c;由于浮点计算的存在&#xff0c;包括数学建模当中常用的大M法等&#xff0c;都可能会使得结果存在轻微偏离预期的情况。然而&#xff0c;对于一些一定范围内的轻微偏移&#xff0c;我们常常是能够接受的&#xff0c;因为这些轻微的偏移能通过简单的调整…

听力句子100

[ 30 ] Now, you are going to be working on / writing a series of music lessons / for very young children. 现在&#xff0c;你将为年幼的孩子们编写一系列音乐课程 As before, youll be basing / the degin of your lessons / on the existing research / into how c…

苏州和数荣获苏州市软件行业协会“杰出贡献理事单位”

2023年12月14日&#xff0c;苏州市软件行业协会第五届第五次理事会议在金螳螂大厦顺利召开。 苏州市工信局副局长万资平&#xff0c;苏州市工信局大数据处处长卢剑荣&#xff0c;苏州市工信局大数据处丁天龙&#xff0c;江苏省软件行业协会副秘书长夏冰莹&#xff0c;苏州市软…

【SpringBoot快速入门】(2)SpringBoot的配置文件与配置方式详细讲解

之前我们已经学习的Spring、SpringMVC、Mabatis、Maven&#xff0c;详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例&#xff0c;上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动&#xff0c;从这一节开始&#xff0c;我们开始学习SpringBoot…

SpringSecurity深度解析与实践(1)

目录 引言1. SpringSecurity1.1 SpringSecurity简介1.2 SpringSecurity工作原理1.3.特点 2. SpringSecurity的快速使用总结 引言 SpringSecurity作为Spring框架中的一个重要组成部分&#xff0c;扮演着保护应用程序安全的重要角色。本文将深入探讨SpringSecurity的原理、使用方…

logging模块

【 一 】前言 logging 模块是 Python 中用于记录日志信息的标准库模块。通过使用 logging 模块&#xff0c;你可以在应用程序中设置日志记录以追踪代码执行、错误报告等信息。 debug : 打印全部的日志( notset 等同于 debug )info : 打印 info, warning, error, critical 级别的…

Playground AI刚刚推出了它的新宠儿——Playground V2,去试试?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Vue 异步组件:提升应用性能与加载速度

Vue.js 是一款流行的 JavaScript 框架&#xff0c;其中异步组件是优化大型应用性能的重要工具之一。通过异步组件&#xff0c;我们可以按需加载和渲染组件&#xff0c;提高应用的加载速度和用户体验。本文将深入探讨 Vue 异步组件的概念、使用方法以及如何在实际项目中有效地应…

react useState异步问题

1. useState执行后 不能立马拿到新的数据&#xff0c;下次更新绘图就可以拿到了 然后当执行完第一次render时候&#xff0c;比如去点击按钮啥的执行某个方法这个时候就可以拿到数据了 例子&#xff1a; const UseState () > { // 函数组件中没有this const [count, setCou…

vlan的通信(hcia)

有两种情况 第一种 vlanif的接口 VLANIF接口&#xff1a;VLANIF接口是一种三层的逻辑接口。在VLANIF接口上配置P地址 后&#xff0c;没备会在MAC地址表中添加VLANIF接口的MAC地址VD表项&#xff0c;并且为表项的 三层转发标志位置位。当报文的目的MAC地址匹配该表项后&a…

Linux-----17、软件包管理

# 软件包管理 # 1、软件包分类 # ㈠ 软件包类型 二进制包源码包 # ① 二进制包 什么是二进制包&#xff1f;有什么特点&#xff1f; 二进制包&#xff0c;指的是已经 1 好了的软件包&#xff0c;只需要直接安装就可以使用。二进制包&#xff0c;不需要编译&#xff0c;直接…

1280:【例9.24】滑雪

【解题思路】 1. 状态定义 状态定义&#xff1a;dp[i][j]&#xff1a;从(i,j)出发的所有路线中&#xff0c;长度最长的路线的长度。 2. 状态转移方程 记第(i,j)位置的高度为a[i][j]。 集合&#xff1a;从(i,j)出发的所有路线 分割集合&#xff1a;根据下一步可以到达的位置分割…

.locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

尊敬的读者&#xff1a; .locked1、locked勒索病毒&#xff0c;一股数字时代的黑暗势力&#xff0c;以其狡猾手法而令人闻风丧胆。这种勒索软件通过各种途径悄悄渗透用户计算机&#xff0c;随后迅速将重要的数据文件加密&#xff0c;使其变成数字迷宫的密码锁。随后&#xff0…

计算机msvcr120.dll文件丢失怎样修复,只需简单3步即可

在使用电脑过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“缺少某个.dll文件”&#xff0c;“找不到msvcr120.dll文件”。那么&#xff0c;msvcr120.dll文件到底是什么呢&#xff1f;当我们遇到这个问题时应该如何解决呢&#xff1f;本文将详细介…

VTK显示六棱柱

这个就是稍微复杂一点的程序&#xff0c;但是vtk的和qt的图形视图框架十分类似&#xff0c;qt里有视图、图元、场景&#xff0c;而vtk里恰好也有这些 #include "vtkSmartPointer.h" #include "vtkRenderWindow.h" #include "vtkRenderer.h" #in…

力扣题目学习笔记(OC + Swift) 13. 罗马数字转整数

罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;…