概述
消息摘要算法为了防止篡改
常见的摘要加密算法
常见的摘要加密算法:MD5、sha1、sha256、sha512
代码实现
主要的是将二进制数组转为16进制
/**
* 消息摘要算法为了防止篡改
* 常见的加密算法:MD5、sha1、sha256、sha512
* @param args
* @throws NoSuchAlgorithmException
*/
public static void main(String[] args) throws NoSuchAlgorithmException {
String input = "hello";
//算法
String algorithm = "MD5";
String MD5 = getStringBuffer(algorithm, input);
System.out.println("MD5="+MD5);
algorithm = "sha1";
String sha1 = getStringBuffer(algorithm, input);
System.out.println("sha1="+sha1);
algorithm = "sha256";
String sha256 = getStringBuffer(algorithm, input);
System.out.println("sha256="+sha256);
algorithm = "sha512";
String sha512 = getStringBuffer(algorithm, input);
System.out.println("sha512="+sha512);
}
private static String getStringBuffer(String algorithm, String input) throws NoSuchAlgorithmException {
StringBuffer stringBuffer = new StringBuffer();
//创建消息摘要算法
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
//执行消息摘要算法
byte[] digest = messageDigest.digest(input.getBytes(StandardCharsets.UTF_8));
//对密文进行迭代
for (byte b : digest) {
//把密文转为16进制
String hexString = Integer.toHexString(b & 0xff);
stringBuffer.append(hexString);
}
return stringBuffer.toString();
}