![c456783327eca17f123942d8472b0b24.png](https://img-blog.csdnimg.cn/img_convert/c456783327eca17f123942d8472b0b24.png)
SHA-256加密有两种实现方法:使用java原生的摘要和Apache的工具类,本文介绍java原生摘要实现方式,Apache的工具类实现方式有兴趣可以继续了解,深入研究。
目前了解到此算法是不可逆的,安全系数较高的。
利用java原生的摘要实现SHA256加密
/*
SHA256算法
*/
private static String sha256(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest messageDigest;
String encodestr = "";
messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(str.getBytes("UTF-8"));
encodestr = byte2Hex(messageDigest.digest());
return encodestr;
}
private static String byte2Hex(byte[] bytes) {
StringBuffer stringBuffer = new StringBuffer();
String temp = null;
for (int i = 0; i < bytes.length; i++) {
temp = Integer.toHexString(bytes[i] & 0xFF);
if (temp.length() == 1) {
// 1得到一位的进行补0操作
stringBuffer.append("0");
}
stringBuffer.append(temp);
}
return stringBuffer.toString();
}
测试案例:
String str = "洛长生的IT后宫";
System.out.println(sha256(str));
运行结果:
3e71db6b2fa15cffae4b36719fe5d15b64cf6bbc51475f5694c487825eb362fb
SHA256算法原理详解请参考:SHA256算法原理详解