目录
算法类型(Algorithm)
/**
算法类型
*/
@Retention( RetentionPolicy.SOURCE )
public @interface AlgorithmType {
String MD5 = "MD5";
String SHA1 = "SHA-1";
String SHA256 = "SHA-256";
String SHA384 = "SHA-384";
String SHA512 = "SHA-512";
}
字节数组转16进制字符(Hex)
/**
转为16进制
@param bs 字节数组
@return 16进制字符串
*/
private static String toHexString(byte[] bs) {
StringBuilder sb = new StringBuilder();
String s;
for( byte b : bs ) {
s = Integer.toHexString( b & 0xFF );
//1得到一位的进行补0操作
if (s.length() == 1) sb.append("0");
sb.append(s);
}
return sb.toString();
}
计算校验值(字节数组和文本)
/**
* 计算字节数组的校验值
* @param data 数据
* @param algorithm 算法类型
* @return 返回结果
*/
@Nullable
public static String toDigest(@NonNull byte[] data, @NonNull @AlgorithmType String algorithm) {
try {
MessageDigest digest = MessageDigest.getInstance( algorithm );
digest.update( data );