Android之簡單加密–MD5 加密

在Android中須要對各類數據進行加密的操做,好比用戶短信備份的數據加密、用戶帳戶登錄的密碼加密以及應用於服務器鏈接傳遞重要數據的加密,用處很是的多
這裏介紹一下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
public class MD5Utils {
      // 進行md5的加密運算
      public static String encode(String password) {
         // MessageDigest專門用於加密的類
         try {
             MessageDigest messageDigest = MessageDigest.getInstance( "MD5" );
             byte [] result = messageDigest.digest(password.getBytes());  // 獲得加密後的字符組數
 
             StringBuffer sb =  new StringBuffer();
 
             for ( byte b : result) {
                int num = b &  0xff // 這裏的是爲了將本來是byte型的數向上提高爲int型,從而使得本來的負數轉爲了正數
                String hex = Integer.toHexString(num);  //這裏將int型的數直接轉換成16進製表示
                //16進制多是爲1的長度,這種狀況下,須要在前面補0,
                if (hex.length() ==  1 ) {
                    sb.append( 0 );
                }
                sb.append(hex);
             }
 
             return sb.toString();
 
         catch (NoSuchAlgorithmException e) {
             e.printStackTrace();
             return null ;
         }
      }
  }

MD5的加密實現方式是被谷歌屏蔽起來的,因此這隻能想黑盒子測試同樣去了解它的做用,那麼這裏是將傳入的字符串轉換成16位16進制的字符串從而起到加密的做用,中間對於&0Xff也已經作出瞭解釋。這裏順便記錄一下java的基礎知識,不用真的還比較容易忘記。數組

java 8大基本數據類型:服務器

類型            長度(字節爲單位,一個字節是8位也就是0000 0000,若是是字就是16位 0000 0000 0000 0000)
boolean–>1
char–>2app

byte–>1
short–>2
int–>4
long–>8測試

float–>4
double–>8
加密

PS:在java中,有一個字符串的操做spa

案例驅動:

1
2
3
4
5
6
7
8
9
10
public void test3()
  {
      <span style= "text-decoration: underline;" >String</span> password =  "1203" ;
      byte [] bytes = password.getBytes();
 
      for ( byte b: bytes)
      {
         System.out.println(b);
      }
  }

須要作出的基本解釋,就是這裏java會將字符串中的內容轉換成字節數組進行輸出,規律以下:code

    1. 英文單字 一個對應一個字節
    2. 數字通常也是一個數字對應一個字節
    3. 中文的話通常是一箇中文對應3個字節來表示。(這裏不是很是的明白,爲何一箇中文對應3個字節)
相關文章
相關標籤/搜索