数字摘要 (消息摘要)

Posted dengw125792

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字摘要 (消息摘要)相关的知识,希望对你有一定的参考价值。

数字摘要是一个消息或文本的对应的固定的长度的唯一值

为了防止篡改,为了保证文件的安全

 

摘要的长度是固定的,算法不可逆

MD5:128比特位  16字节

SHA-1:160比特位  20字节

 

 

package t2;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class DIgestDemo1 {

public static void main(String[] args) throws NoSuchAlgorithmException {

// 原文
String input = "科學";
// 算法
String algorithm = "MD5";
// 創建消息摘要對象
MessageDigest digest = MessageDigest.getInstance(algorithm);
// 執行消息摘要
byte[] bytes = digest.digest(input.getBytes());
StringBuilder sb = new StringBuilder();
System.out.println(new String(Base64.getEncoder().encode(bytes)));
for (byte b : bytes) {
// 密文转16进制
String string = Integer.toHexString(b & 0xff);
// 如果密文長度為1,需要高位補1
if (string.length() == 1) {
string = "0" + string;
}
sb.append(string);
}
System.out.println(sb.toString());
}
}

 

输出:

P/+b/PaPB8X9hRjuK/S3Hw==
3fff9bfcf68f07c5fd8518ee2bf4b71f

 

以上是关于数字摘要 (消息摘要)的主要内容,如果未能解决你的问题,请参考以下文章

java/消息摘要算法&数字签名

消息摘要算法

数字签名技术

password学4——Java 加密解密之消息摘要算法(MD5 SHA MAC)

散列函数消息摘要与数字签名

数字签名技术