MD5实现数据完整性校验

79 阅读1分钟

序言

MD5,全称为Message-Digest Algorithm 5(信息-摘要算法5),是一种被广泛使用的密码散列函数。它可以将任意长度的“消息”(即输入数据)通过一系列复杂的运算,最终生成一个固定长度(128位,即16字节)的散列值(也称为哈希值或摘要)。这个散列值通常被表示为一个32位的十六进制数。

MD5算法的设计初衷是为了确保信息传输的完整性和一致性。在数据传输或存储过程中,发送方可以使用MD5算法对数据进行处理,生成一个MD5散列值,并将这个值随数据一起发送给接收方。接收方在收到数据后,可以使用相同的MD5算法对数据进行处理,并生成一个新的MD5散列值。如果两个散列值相同,那么可以认为数据在传输或存储过程中没有被篡改。

总结:MD5进行哈希计算时,相同的输入总是会产生相同的输出。这一特性使得MD5非常适合用于数据完整性校验。

前端

  • 导入
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
  • 例子
// 假设你有一个字符串,你想要计算它的MD5哈希值
const inputString = "hello world";
 
// 使用CryptoJS的MD5方法计算哈希值
const md5Hash = CryptoJS.MD5(inputString).toString(CryptoJS.enc.Hex);
 
// 输出结果
console.log("MD5 Hash:", md5Hash);

后端

 @Test
    public void Test3() {
        String input = "hello world";
        String input2 = "hello world";
        String md5Hex = DigestUtils.md5DigestAsHex(input.getBytes());
        String md5Hex2 = DigestUtils.md5DigestAsHex(input2.getBytes());
        System.out.println("MD5 Hex1: " + md5Hex);
        System.out.println("MD5 Hex2: " + md5Hex2);
    }