哈希算法、哈希函数、散列算法、散列函数、表达的都是一个意思。
哈希算法就是把任意长度的输入,通过算法,变换成固定长度的输出,该输出就是:“哈希值”,也可以称作:“信息摘要、指纹”等。
算法特点:
a. 输出不可逆:哈希值不能够还原回原文。
b. 输出定长:无论输入多长,输出总是固定长度(MD5输出总是128bit)。
c. 输入不变输出不变,输入改变输出一定变。
常见的哈希算法:
JAVA-MD5算法演示代码:
package com.netty.demo.rsa;
import io.netty.buffer.ByteBufUtil;
import java.security.MessageDigest;
public class HexTest {
public static void main(String[] args) throws Exception {
MessageDigest messageDigest = MessageDigest.getInstance("md5");
messageDigest.update("hello alice".getBytes());
byte[] digestBytes = messageDigest.digest();
System.out.println("length:" + digestBytes.length + " hex:" + ByteBufUtil.hexDump(digestBytes));
//length:16 hex:9d082190e9eb2fd1a01a8657e5d726bb
}
}