package com.ruoyi.study.utils;
|
|
import java.security.MessageDigest;
|
|
/**
|
* @author HJL
|
* @version 1.0
|
* @since 2024-05-21 14:22
|
*/
|
public class SignatureUtil {
|
|
private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5',
|
'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
|
|
private static String getFormattedText(byte[] bytes) {
|
int len = bytes.length;
|
StringBuilder buf = new StringBuilder(len * 2);
|
// 把密文转换成十六进制的字符串形式
|
for (byte aByte : bytes) {
|
buf.append(HEX_DIGITS[(aByte >> 4) & 0x0f]);
|
buf.append(HEX_DIGITS[aByte & 0x0f]);
|
}
|
return buf.toString();
|
}
|
|
public static String getSignature(String str) {
|
if (str == null) {
|
return null;
|
}
|
try {
|
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
|
messageDigest.reset();
|
messageDigest.update(str.getBytes());
|
return getFormattedText(messageDigest.digest());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
|
|
}
|