消息摘要是数字签名的核心算法,用于验证消息的完整性,通常称为“加签”,属于单向操作,不可逆转。以下主要介绍使用较为广泛的消息摘要算法的使用,包括MD、SHA、MAC等,以下消息摘要算法均引自JDK,无需另导包。
在工作中涉及到此处的知识,故在网上查找了一些资料,写下以下的demo,以作汇总!
1、MD (MD5由JDK提供 128位)
import java.security.MessageDigest;
/**
* @Author Rhine
* @Date 2019/1/17 22:55
**/
public class ImoocMD {
private static String src="imooc security md";
public static void main(String[] args) {
jdkMD5();
}
public static void jdkMD5(){
try {
MessageDigest md=MessageDigest.getInstance("MD5");
byte[] md5Bytes=md.digest(src.getBytes());
System.out.println("JDK MD5: "+Hex.encodeHexString(md5Bytes)); //字符数组转为十六进制
}catch (Exception e){
e.printStackTrace();
}
}
}
2、SHA(安全散列算法 128位)
import org.apache.commons.codec.bin