JAVA 的 SHA-256 和 SHA-512 兩種 Hash 演算法的呼叫
阿新 • • 發佈:2019-02-08
JAVA 已經實現了 SHA-256 和 SHA-512 兩種 Hash 演算法
利用 java.security.MessageDigest 呼叫已經整合的 Hash 演算法
建立 Encrypt 物件,並呼叫 SHA256 或者 SHA512 並傳入要加密的文字資訊,分別得到 SHA-256 或 SHA-512 兩種被加密的 hash 串。
若要改為 MD5 演算法,修改傳入引數 strType 為 "MD5" 即可得到 MD5 加密功能。
package test; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Encrypt { /** * 傳入文字內容,返回 SHA-256 串 * * @param strText * @return */ public String SHA256(final String strText) { return SHA(strText, "SHA-256"); } /** * 傳入文字內容,返回 SHA-512 串 * * @param strText * @return */ public String SHA512(final String strText) { return SHA(strText, "SHA-512"); } /** * 字串 SHA 加密 * * @param strSourceText * @return */ private String SHA(final String strText, final String strType) { // 返回值 String strResult = null; // 是否是有效字串 if (strText != null && strText.length() > 0) { try { // SHA 加密開始 // 建立加密物件 並傳入加密型別 MessageDigest messageDigest = MessageDigest.getInstance(strType); // 傳入要加密的字串 messageDigest.update(strText.getBytes()); // 得到 byte 型別結果 byte byteBuffer[] = messageDigest.digest(); // 將 byte 轉換為 string StringBuffer strHexString = new StringBuffer(); // 遍歷 byte buffer for (int i = 0; i < byteBuffer.length; i++) { String hex = Integer.toHexString(0xff & byteBuffer[i]); if (hex.length() == 1) { strHexString.append('0'); } strHexString.append(hex); } // 得到返回結果 strResult = strHexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } return strResult; } }
Q群討論:236201801
.