Hash函数又称杂凑函数,用于摘要算法,它是将不定长的明文信息经过复杂的运算得到一个定长的数值,这就是“签名”。摘要算法与一般的对称或非对称加密算法不同,它并不用于防止信息被窃取,而是用于证明原文的完整性和准确性,也就是说,数字签名主要是用于防止信息被篡改
消息摘要工具demo:
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import javax.xml.bind.DatatypeConverter;
public class Base64Util {
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "abcd一二三四";
/*
* java8实现 **********************
*/
//基础版
System.out.println(Base64.getEncoder().encodeToString(s.getBytes("UTF-8")));
//URL编码:使用'-', '_'代替基础的'+', '/'
System.out.println(Base64.getUrlEncoder().encodeToString(s.getBytes("UTF-8")));
//MIME编码:每一行输出不超过76个字符,而且每行以"\r\n"符结束。
System.out.println(Base64.getMimeEncoder().encodeToString(s.getBytes("UTF-8")));
/*
* DatatypeConverter实现 **********************
*/
System.out.println(DatatypeConverter.printBase64Binary(s.getBytes("UTF-8")));
}
}