/**
* @param data 字符串信息
* @return 将字符串进行 sha1 散列,得到长度为 40 的签名。
* @throws NoSuchAlgorithmException
*/
private static String sha1(String data) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA1");
md.update(data.getBytes());
StringBuilder buf = new StringBuilder();
byte[] bits = md.digest();
for (int bit : bits) {
int a = bit;
if (a < 0) a += 256;
if (a < 16) buf.append("0");
buf.append(Integer.toHexString(a));
}
return buf.toString();
}
public static void main(String[] args) throws NoSuchAlgorithmException {
String str = "123456486";
System.out.println(str);// 加密前
System.out.println(sha1(str));// 加密后
}
实际代码环境下应用,可以直接引用org.apache.commons.codec.digest.DigestUtils的相关方法直接应用,如下:
public static void main(String[] args) {
String str = "123456486";
System.out.println(str);// 加密前
System.out.println(DigestUtils.sha1Hex(subStr));// 加密后
}