MD5加密算法的java實現

b77m 9年前發布 | 1K 次閱讀 Java

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/*

  • MD5 算法 */ public class MD5 {

    // 全局數組 private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",

         "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    
    

    public MD5() { }

    // 返回形式為數字跟字符串 private static String byteToArrayString(byte bByte) {

     int iRet = bByte;
     // System.out.println("iRet="+iRet);
     if (iRet < 0) {
         iRet += 256;
     }
     int iD1 = iRet / 16;
     int iD2 = iRet % 16;
     return strDigits[iD1] + strDigits[iD2];
    

    }

    // 返回形式只為數字 private static String byteToNum(byte bByte) {

     int iRet = bByte;
     System.out.println("iRet1=" + iRet);
     if (iRet < 0) {
         iRet += 256;
     }
     return String.valueOf(iRet);
    

    }

    // 轉換字節數組為16進制字串 private static String byteToString(byte[] bByte) {

     StringBuffer sBuffer = new StringBuffer();
     for (int i = 0; i < bByte.length; i++) {
         sBuffer.append(byteToArrayString(bByte[i]));
     }
     return sBuffer.toString();
    

    }

    public static String GetMD5Code(String strObj) {

     String resultString = null;
     try {
         resultString = new String(strObj);
         MessageDigest md = MessageDigest.getInstance("MD5");
         // md.digest() 該函數返回值為存放哈希值結果的byte數組
         resultString = byteToString(md.digest(strObj.getBytes()));
     } catch (NoSuchAlgorithmException ex) {
         ex.printStackTrace();
     }
     return resultString;
    

    }

    public static void main(String[] args) {

     MD5 getMD5 = new MD5();
     System.out.println(getMD5.GetMD5Code("000000"));
    

    } }</pre>

 本文由用戶 b77m 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!