数字摘要 (消息摘要)

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

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

 

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

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

 

posted @ 2020-07-05 00:39  工设091  阅读(567)  评论(0编辑  收藏  举报