国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現MD5加密方法匯總

java實現MD5加密方法匯總

2020-01-13 16:56hebedich JAVA教程

本文給大家匯總介紹了2種java實現MD5加密的方法,非常的實用,這里分享給大家,學習下其中的思路,對大家學習java非常有幫助。

代碼一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
 * 實現MD5加密
 *
 */
public class MD5 {
   
  /**
   * 獲取加密后的字符串
   * @param input
   * @return
   */
  public static String stringMD5(String pw) {
    try {
        
       // 拿到一個MD5轉換器(如果想要SHA1參數換成”SHA1”)
       MessageDigest messageDigest =MessageDigest.getInstance("MD5");
       // 輸入的字符串轉換成字節數組
       byte[] inputByteArray = pw.getBytes();
       // inputByteArray是輸入字符串轉換得到的字節數組
       messageDigest.update(inputByteArray);
       // 轉換并返回結果,也是字節數組,包含16個元素
       byte[] resultByteArray = messageDigest.digest();
       // 字符數組轉換成字符串返回
       return byteArrayToHex(resultByteArray);
      } catch (NoSuchAlgorithmException e) {
       return null;
      }
  }
   
  public static String byteArrayToHex(byte[] byteArray) {
     
    // 首先初始化一個字符數組,用來存放每個16進制字符
    char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };
    // new一個字符數組,這個就是用來組成結果字符串的(解釋一下:一個byte是八位二進制,也就是2位十六進制字符(2的8次方等于16的2次方))
    char[] resultCharArray =new char[byteArray.length * 2];
    // 遍歷字節數組,通過位運算(位運算效率高),轉換成字符放到字符數組中去
    int index = 0;
    for (byte b : byteArray) {
      resultCharArray[index++] = hexDigits[b>>> 4 & 0xf];
      resultCharArray[index++] = hexDigits[b& 0xf];
    }
    // 字符數組組合成字符串返回
    return new String(resultCharArray);
  }
}

方法二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package other;
 
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"));
  }
}

延伸 · 閱讀

精彩推薦
  • JAVA教程Java鎖之自旋鎖詳解

    Java鎖之自旋鎖詳解

    這篇文章主要介紹了Java鎖之自旋鎖詳解,本文是系列文章的第一篇,請持續關注腳本之家java欄目,需要的朋友可以參考下 ...

    junjie2652019-11-28
  • JAVA教程java反射使用示例分享

    java反射使用示例分享

    這篇文章主要介紹了java反射使用示例,代碼很簡單,需要的朋友可以參考下 ...

    java教程網5072019-11-10
  • JAVA教程Java基礎教程之組合(composition)

    Java基礎教程之組合(composition)

    這篇文章主要介紹了Java基礎教程之組合(composition),組合是在Java中實現程序復用(reusibility)的基本手段之一,需要的朋友可以參考下 ...

    junjie2372019-11-27
  • JAVA教程java實現八皇后問題示例分享

    java實現八皇后問題示例分享

    這篇文章主要介紹了java實現八皇后問題示例,八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾于...

    java教程網1832019-11-14
  • JAVA教程java基于JDBC連接Oracle 11g Release2實例分析

    java基于JDBC連接Oracle 11g Release2實例分析

    這篇文章主要介紹了java基于JDBC連接Oracle 11g Release2的方法,實例分析了JDBC連接Oracle 11g Release2容易出現的異常與解決方法,需要的朋友可以參考下 ...

    紅薯1912019-12-24
  • JAVA教程JVM的垃圾回收算法工作原理詳解

    JVM的垃圾回收算法工作原理詳解

    這篇文章主要介紹了JVM的垃圾回收算如何判斷對象是否可以被回收,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    clawhub2312019-06-30
  • JAVA教程二進制中1的個數

    二進制中1的個數

    這篇文章介紹了二進制中1的個數,有需要的朋友可以參考一下 ...

    java之家1402019-10-15
  • JAVA教程Java中的觀察者模式實例講解

    Java中的觀察者模式實例講解

    這篇文章主要介紹了Java中的觀察者模式實例講解,本文先是講解了觀察者模式的概念,然后以實例講解觀察者模式的實現,以及給出了UML圖,需要的朋友可以參...

    junjie2692019-12-06
主站蜘蛛池模板: 精品免费在线 | 精品国产欧美一区二区三区成人 | 免费看国产片在线观看 | 黄版视频在线观看 | 成年人在线免费观看视频网站 | 色一色视频 | japan23xxxxhd乱 | 精品少妇一区二区三区日产乱码 | 久久国产一区二区 | 亚洲国产精品99久久久久久久久 | 狠狠插狠狠操 | 99这里只有精品 | 日本人在线观看 | 一区二区三区中文字幕 | 在线看国产 | 在线观看国产一区 | 欧美区国产 | 欧美第一专区 | 久久美女视频 | 欧美精品一区二区三区在线播放 | 亚洲精品久久久久久久久久久久久 | 免费一级视频在线观看 | 一级黄色大片免费观看 | 国产一区二区三区四 | 国产精品视频在线观看 | 亚洲一区 欧美 | 亚洲欧美v国产一区二区 | 青草福利| 国产精品成人免费视频 | 伊人伊人伊人 | 久草福利在线视频 | 成人福利 | 国产精品一码二码三码在线 | 欧美伦理一区二区三区 | 91精品国产综合久久久久久丝袜 | 日韩精品专区 | 日韩成人av在线 | 黄色av大全 | 久久99深爱久久99精品 | 精品成人在线 | 亚洲毛片在线 |