前端加密后端校验(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

你可能感兴趣的:(前端,java)