sha256加密,java
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
java sha256加密是什麼?讓我們一起來了解一下吧!
java sha256加密是java程序中的一種加密算法。Sha256是屬於sha-2類目下面的一種算法。Sha256加密算法是屬於非對稱加密,是不可以逆轉的。
SHA256算法的作用如下:
1.映射作用。將用户明文密碼 加密後得到hash,將其保存到數據庫,防止通過數據庫查看明文密碼
2防止惡意篡改作用。對文件或者字符串進行加密,得到hash,如果文件或者字符串被篡改,則hash就不會和上次得到得hash相同了。
3.不管什麼通過SHA256算法得到的結果都是128的字符串。
java可以通過以下兩種方式實現java sha256加密:
1.使用apache工具類進行加密的代碼:
/**** 利用Apache的工具類實現SHA-256加密* @param str 加密後的報文* @return*/public static String getSHA256Str(String str){ MessageDigest messageDigest; String encdeStr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); byte[] hash = messageDigest.digest(str.getBytes("UTF-8")); encdeStr = Hex.encodeHexString(hash); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return encdeStr;}
2.使用java本身具有的進行加密:
/*** 利用java原生的摘要實現SHA256加密* @param str 加密後的報文* @return*/public static String getSHA256StrJava(String str){ MessageDigest messageDigest; String encodeStr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(str.getBytes("UTF-8")); encodeStr = byte2Hex(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return encodeStr;}/*** 將byte轉為16進制* @param bytes* @return*/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();}