MD5加密和驗證Java程序

b4c2 9年前發布 | 10K 次閱讀 Java 加密

import java.security.MessageDigest;

/**

  • 對密碼進行加密和驗證的程序 */ public class Password {

    /* 十六進制下數字到字符的映射數組 / private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",

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

    /**

    • 把inputString加密。
    • @param inputString
    • 待加密的字符串
    • @return */ public static String createPassword(String inputString) { return encodeByMD5(inputString); }

      /**

    • 驗證輸入的密碼是否正確
    • @param password
    • 真正的密碼(加密后的真密碼)
    • @param inputString
    • 輸入的字符串
    • @return */ public static boolean authenticatePassword(String password,

       String inputString) {
      

      if (password.equals(encodeByMD5(inputString))) {

       return true;
      

      } else {

       return false;
      

      } }

      /**

    • 對字符串進行MD5編碼
    • @param originString
    • @return */ private static String encodeByMD5(String originString) { if (originString != null) {

       try {
           MessageDigest md = MessageDigest.getInstance("MD5");
           byte[] results = md.digest(originString.getBytes());
           String resultString = byteArrayToHexString(results);
           return resultString.toUpperCase();
       } catch (Exception ex) {
           ex.printStackTrace();
       }
      

      } return null; }

      /**

    • 轉換字節數組為16進制字串
    • @param b
    • 字節數組
    • @return 十六進制字串 */ private static String byteArrayToHexString(byte[] b) { StringBuffer resultSb = new StringBuffer(); for (int i = 0; i < b.length; i++) {

       resultSb.append(byteToHexString(b[i]));
      

      } return resultSb.toString(); }

      /**

    • 將一個字節轉化成16進制形式的字符串
    • @param b
    • @return */ private static String byteToHexString(byte b) { int n = b; if (n < 0)

       n = 256 + n;
      

      int d1 = n / 16; int d2 = n % 16; return hexDigits[d1] + hexDigits[d2]; }

      public static void main(String[] args) { String password = Password.createPassword("888888"); System.out.println("對888888用MD5摘要后的字符串:" + password); String inputString = "8888"; System.out.println("8888與密碼匹配?"

           + Password.authenticatePassword(password, inputString));
      

      inputString = "888888"; System.out.println("888888與密碼匹配?"

           + Password.authenticatePassword(password, inputString));
      

      } }</pre>

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