一、SHA类
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA {
public static final String ALGORITHM = "MD5";
//参数可选SHA/SHA1/SHA-1/SHA-256/MD5
public static String SHA256Encrypt(String orignal) {
MessageDigest md = null;
try {
md = MessageDigest.getInstance(ALGORITHM);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
if (null != md) {
byte[] origBytes = orignal.getBytes();
md.update(origBytes);
byte[] digestRes = md.digest();
String digestStr = getDigestStr(digestRes);
return digestStr;
}
return null;
}
private static String getDigestStr(byte[] origBytes) {
String tempStr = null;
StringBuilder stb = new StringBuilder();
for (int i = 0; i < origBytes.length; i++) {
tempStr = Integer.toHexString(origBytes[i] & 0xff);
if (tempStr.length() == 1) {
stb.append("0");
}
stb.append(tempStr);
}
return stb.toString();
}
}
二、Test类
public class Test {
public static void main(String[] args) {
String s1 = SHA.SHA256Encrypt(new String ("abcd123"));
System.out.println(s1);
String s2 = SHA.SHA256Encrypt(new String ("abcd123"));
System.out.println(s2);
}
}
“`
SHA加密是不可逆的,hash地址不同但内容相同字符串的加密结果相同。