最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)MD5加密方法匯總

 更新時間:2015年10月29日 11:44:18   投稿:hebedich  
本文給大家匯總介紹了2種java實現(xiàn)MD5加密的方法,非常的實用,這里分享給大家,學習下其中的思路,對大家學習java非常有幫助。

代碼一:

/**
 * 實現(xiàn)MD5加密
 *
 */
public class MD5 {
   
  /**
   * 獲取加密后的字符串
   * @param input
   * @return
   */
  public static String stringMD5(String pw) {
    try { 
        
       // 拿到一個MD5轉換器(如果想要SHA1參數(shù)換成”SHA1”) 
       MessageDigest messageDigest =MessageDigest.getInstance("MD5"); 
       // 輸入的字符串轉換成字節(jié)數(shù)組 
       byte[] inputByteArray = pw.getBytes(); 
       // inputByteArray是輸入字符串轉換得到的字節(jié)數(shù)組 
       messageDigest.update(inputByteArray); 
       // 轉換并返回結果,也是字節(jié)數(shù)組,包含16個元素 
       byte[] resultByteArray = messageDigest.digest(); 
       // 字符數(shù)組轉換成字符串返回 
       return byteArrayToHex(resultByteArray); 
      } catch (NoSuchAlgorithmException e) { 
       return null; 
      } 
  }
   
  public static String byteArrayToHex(byte[] byteArray) { 
     
    // 首先初始化一個字符數(shù)組,用來存放每個16進制字符 
    char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; 
    // new一個字符數(shù)組,這個就是用來組成結果字符串的(解釋一下:一個byte是八位二進制,也就是2位十六進制字符(2的8次方等于16的2次方)) 
    char[] resultCharArray =new char[byteArray.length * 2]; 
    // 遍歷字節(jié)數(shù)組,通過位運算(位運算效率高),轉換成字符放到字符數(shù)組中去 
    int index = 0; 
    for (byte b : byteArray) { 
      resultCharArray[index++] = hexDigits[b>>> 4 & 0xf]; 
      resultCharArray[index++] = hexDigits[b& 0xf]; 
    }
    // 字符數(shù)組組合成字符串返回 
    return new String(resultCharArray); 
  }
}

方法二:

package other;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/*
 * MD5 算法
*/
public class MD5 {
  
  // 全局數(shù)組
  private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
      "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

  public MD5() {
  }

  // 返回形式為數(shù)字跟字符串
  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];
  }

  // 返回形式只為數(shù)字
  private static String byteToNum(byte bByte) {
    int iRet = bByte;
    System.out.println("iRet1=" + iRet);
    if (iRet < 0) {
      iRet += 256;
    }
    return String.valueOf(iRet);
  }

  // 轉換字節(jié)數(shù)組為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() 該函數(shù)返回值為存放哈希值結果的byte數(shù)組
      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"));
  }
}

相關文章

  • Spring Cloud 2023 新特性支持同步網(wǎng)關

    Spring Cloud 2023 新特性支持同步網(wǎng)關

    這篇文章主要為大家介紹了Spring Cloud 2023 新特性支持同步網(wǎng)關講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 利用Spring Data MongoDB持久化文檔數(shù)據(jù)的方法教程

    利用Spring Data MongoDB持久化文檔數(shù)據(jù)的方法教程

    這篇文章主要給大家介紹了關于利用Spring Data MongoDB持久化文檔數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • springboot整合JPA過程解析

    springboot整合JPA過程解析

    這篇文章主要介紹了springboot整合JPA過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • idea手動刷新git分支的詳細教程

    idea手動刷新git分支的詳細教程

    這篇文章主要介紹了idea手動刷新git分支,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java編程guava RateLimiter實例解析

    Java編程guava RateLimiter實例解析

    這篇文章主要介紹了Java編程guava RateLimiter實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Java服務中的大文件上傳和下載優(yōu)化技巧分享

    Java服務中的大文件上傳和下載優(yōu)化技巧分享

    在Java服務中處理大文件的上傳和下載是一項常見但復雜的任務,為了提供優(yōu)秀的用戶體驗和高效的系統(tǒng)性能,我們將探索多種策略和技術,并在每一點上都提供代碼示例以便實戰(zhàn)應用,需要的朋友可以參考下
    2023-10-10
  • Spring事務&Spring整合MyBatis的兩種方式

    Spring事務&Spring整合MyBatis的兩種方式

    這篇文章主要介紹了Spring事務&Spring整合MyBatis的兩種方式,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • 詳解配置類為什么要添加@Configuration注解

    詳解配置類為什么要添加@Configuration注解

    這篇文章主要介紹了詳解配置類為什么要添加@Configuration注解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Java 方法簽名詳解及實例代碼

    Java 方法簽名詳解及實例代碼

    這篇文章主要介紹了 Java 方法簽名詳解及實例代碼的相關資料,需要的朋友可以參考下
    2016-10-10
  • Java 可視化垃圾回收_動力節(jié)點Java學院整理

    Java 可視化垃圾回收_動力節(jié)點Java學院整理

    Ben Evans是一名資深培訓師兼顧問,他在演講可視化垃圾回收中從基礎談起討論了垃圾回收。以下是對其演講的簡短總結。感興趣的朋友一起學習吧
    2017-05-05

最新評論

资中县| 鹤岗市| 措勤县| 禹州市| 鹿泉市| 永丰县| 简阳市| 遵义市| 乌拉特中旗| 竹溪县| 白水县| 手机| 崇阳县| 全南县| 乌鲁木齐县| 黎城县| 朔州市| 长宁县| 金平| 明溪县| 平和县| 诸城市| 抚松县| 浦县| 兰坪| 唐海县| 吕梁市| 忻城县| 登封市| 云安县| 葫芦岛市| 固安县| 额济纳旗| 祁东县| 永嘉县| 吴江市| 富阳市| 娱乐| 伊吾县| 正蓝旗| 九江市|