package com.cwa.crypto;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* 消息摘要工具类。
*/
public class DigestUtil {
/**
* 计算SHA-256消息摘要。
* @param data 进行消息摘要的数据
* @return
*/
public static byte[] sha256(byte[] data) {
return sha256(data, null);
}
/**
* 计算SHA-256消息摘要。
* @param data 进行消息摘要的数据
* @param salt 干扰数据
* @return
*/
public static byte[] sha256(byte[] data, byte[] salt) {
return digest("SHA-256", data, salt);
}
/**
* 计算MD5消息摘要。
* @param data 进行消息摘要的数据
* @return
*/
public static byte[] md5(byte[] data) {
return md5(data, null);
}
/**
* 计算MD5消息摘要。
* @param data 进行消息摘要的数据
* @param salt 干扰数据
* @return
*/
public static byte[] md5(byte[] data, byte[] salt) {
return digest("MD5", data, salt);
}
private static byte[] digest(String algorithm, byte[] data, byte[] salt) {
try {
MessageDigest md = MessageDigest.getInstance(algorithm);
md.update(data);
if (salt != null) {
md.update(salt);
}
byte[] mdBytes = md.digest();
return mdBytes;
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
}