一、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地址不同但内容相同字符串的加密结果相同。
本文介绍了一种使用Java实现的SHA256加密方法,通过SHA类中的SHA256Encrypt函数对输入字符串进行加密处理,并返回加密后的十六进制字符串。该加密过程不可逆且对于相同内容的字符串始终产生相同的加密结果。

被折叠的 条评论
为什么被折叠?



