Android之簡單加密–MD5 加密

來源:互聯網
上載者:User

標籤:

在Android中需要對各種資料進行加密的操作,比如使用者簡訊備份的資料加密、使用者賬戶登陸的密碼加密以及應用於伺服器串連傳遞重要資料的加密,用處非常的多
這裡介紹一下MD5加密:

案例驅動:
12345678910111213141516171819202122232425262728 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的加密實現方式是被Google屏蔽起來的,所以這隻能想黑盒子測試一樣去瞭解它的作用,那麼這裡是將傳入的字串轉換成16位16進位的字串從而起到加密的作用,中間對於&0Xff也已經做出瞭解釋。這裡順便記錄一下java的基礎知識,不用真的還比較容易忘記。

java 8大基礎資料型別 (Elementary Data Type):

類型            長度(位元組為單位,一個位元組是8位也就是0000 0000,如果是字就是16位 0000 0000 0000 0000)
boolean–>1
char–>2

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

float–>4
double–>8

PS:在java中,有一個字串的操作

案例驅動:
12345678910 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會將字串中的內容轉換成位元組數組進行輸出,規律如下:

      1. 英文單字 一個對應一個位元組
      2. 數字一般也是一個數字對應一個位元組
      3. 中文的話一般是一個中文對應3個位元組來表示。(這裡不是非常的明白,為什麼一個中文對應3個位元組)

Android之簡單加密–MD5 加密

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.