欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 安全加密:消息摘要Message Digest詳解

 更新時間:2016年09月13日 10:08:39   作者:Android-Developer  
本文主要介紹Android安全加密消息摘要Message Digest,這里整理了詳細的資料,并說明如何使用Message Digest 和使用注意事項,有需要的小伙伴可以參考下

Android安全加密專題文章索引

以上學(xué)習所有內(nèi)容,對稱加密、非對稱加密、消息摘要、數(shù)字簽名等知識都是為了理解數(shù)字證書工作原理而作為一個預(yù)備知識。數(shù)字證書是密碼學(xué)里的終極武器,是人類幾千年歷史總結(jié)的智慧的結(jié)晶,只有在明白了數(shù)字證書工作原理后,才能理解Https 協(xié)議的安全通訊機制。最終才能在SSL 開發(fā)過程中得心應(yīng)手。

另外,對稱加密和消息摘要這兩個知識點是可以單獨拿來使用的。

知識點串聯(lián):

數(shù)字證書使用到了以上學(xué)習的所有知識

  1. 對稱加密與非對稱加密結(jié)合使用實現(xiàn)了秘鑰交換,之后通信雙方使用該秘鑰進行對稱加密通信。
  2. 消息摘要與非對稱加密實現(xiàn)了數(shù)字簽名,根證書機構(gòu)對目標證書進行簽名,在校驗的時候,根證書用公鑰對其進行校驗。若校驗成功,則說明該證書是受信任的。
  3. Keytool 工具可以創(chuàng)建證書,之后交給根證書機構(gòu)認證后直接使用自簽名證書,還可以輸出證書的RFC格式信息等。
  4. 數(shù)字簽名技術(shù)實現(xiàn)了身份認證與數(shù)據(jù)完整性保證。
  5. 加密技術(shù)保證了數(shù)據(jù)的保密性,消息摘要算法保證了數(shù)據(jù)的完整性,對稱加密的高效保證了數(shù)據(jù)處理的可靠性,數(shù)字簽名技術(shù)保證了操作的不可否認性。

通過以上內(nèi)容的學(xué)習,我們要能掌握以下知識點:

  1. 基礎(chǔ)知識:bit 位、字節(jié)、字符、字符編碼、進制轉(zhuǎn)換、io
  2. 知道怎樣在實際開發(fā)里怎樣使用對稱加密解決問題
  3. 知道對稱加密、非對稱加密、消息摘要、數(shù)字簽名、數(shù)字證書是為了解決什么問題而出現(xiàn)的
  4. 了解SSL 通訊流程
  5. 實際開發(fā)里怎樣請求Https 的接口

1. 常見算法

MD5、SHA、CRC 等

2. 使用場景

  1. 對用戶密碼進行md5 加密后保存到數(shù)據(jù)庫里
  2. 軟件下載站使用消息摘要計算文件指紋,防止被篡改
  3. 數(shù)字簽名(后面知識點)
  4. 百度云,360網(wǎng)盤等云盤的妙傳功能用的就是sha1值
  5. Eclipse和Android Studio開發(fā)工具根據(jù)sha1值來判斷v4,v7包是否沖突
  6. 據(jù)說銀行的密碼使用的就是MD5加密(因為MD5具有不可逆性)

例如軟件下載站數(shù)據(jù)指紋:http://dev.mysql.com/downloads/installer/

3. 使用步驟

//常用算法:MD5、SHA、CRC
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] result = digest.digest(content.getBytes());
//消息摘要的結(jié)果一般都是轉(zhuǎn)換成16 進制字符串形式展示
String hex = Hex.encode(result);
//MD5 結(jié)果為16 字節(jié)(128 個比特位)、轉(zhuǎn)換為16 進制表示后長度是32 個字符
//SHA 結(jié)果為20 字節(jié)(160 個比特位)、轉(zhuǎn)換為16 進制表示后長度是40 個字符
System.out.println(hex);

消息摘要后的結(jié)果是固定長度,無論你的數(shù)據(jù)有多大,哪怕是只有一個字節(jié)或者是一個G 的文件,摘要后的結(jié)果都是固定長度。

經(jīng)常聽到有人問這樣的問題,MD5 摘要后結(jié)果到底是多少位?有的人說是16 位,有的說是128 位,有的說是32 位。到底是多長,這個時候我們就要明白,16 位指的是字節(jié)位數(shù),128 位指的是比特位,32 位指的結(jié)果轉(zhuǎn)換成16 進制展示的字符位數(shù)。

4. 數(shù)字摘要原理

//獲取實例
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(key.getBytes());
byte[] bytes = digest.digest(key.getBytes());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
 String hex = Integer.toHexString(bytes[i]&0xff);
 if (hex.length() == 1){
 sb.append("0");
 }
 sb.append(hex);
}
String hexstring = sb.toString();

 

相關(guān)文章

  • flutter局部刷新的實現(xiàn)示例

    flutter局部刷新的實現(xiàn)示例

    這篇文章主要介紹了flutter局部刷新的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-09-09
  • Android開發(fā)RecyclerView單獨刷新使用技巧

    Android開發(fā)RecyclerView單獨刷新使用技巧

    本篇文章主要是分享下RecyclerView中子item如何單獨刷新以及子item的某一部分內(nèi)容如何實現(xiàn)單獨刷新,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Android拍照或從圖庫選擇圖片并裁剪

    Android拍照或從圖庫選擇圖片并裁剪

    這篇文章主要介紹了Android拍照或從圖庫選擇圖片并裁剪的相關(guān)資料,具有一定的參考價值,需要的朋友可以參考下
    2016-08-08
  • Android原生視頻播放VideoView的使用

    Android原生視頻播放VideoView的使用

    這篇文章主要為大家詳細介紹了Android原生視頻播放VideoView的使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 揭秘Android視圖繪制的流程步驟

    揭秘Android視圖繪制的流程步驟

    在Android的UI中,View是至關(guān)重要的一個組件,它是用戶界面的基本構(gòu)建塊,在View的繪制過程中,涉及到很多重要的概念和技術(shù),本文將詳細介紹Android?View的繪制過程,讓你能夠更好地理解和掌握Android的UI開發(fā),需要的朋友可以參考下
    2023-06-06
  • Android使用Notification實現(xiàn)通知功能

    Android使用Notification實現(xiàn)通知功能

    這篇文章主要為大家詳細介紹了Android使用Notification實現(xiàn)通知功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • TabLayout+ViewPager2的簡單使用詳解

    TabLayout+ViewPager2的簡單使用詳解

    這篇文章主要為大家詳細介紹了TabLayout+ViewPager2的簡單使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android自定義View制作動態(tài)炫酷按鈕實例解析

    Android自定義View制作動態(tài)炫酷按鈕實例解析

    這篇文章主要為大家詳細解析了Android自定義View制作動態(tài)炫酷按鈕實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Flutter多選按鈕組件Checkbox使用方法詳解

    Flutter多選按鈕組件Checkbox使用方法詳解

    這篇文章主要為大家詳細介紹了Flutter多選按鈕組件Checkbox使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • flutter 路由跳轉(zhuǎn)的實現(xiàn)示例

    flutter 路由跳轉(zhuǎn)的實現(xiàn)示例

    這篇文章主要介紹了flutter 路由跳轉(zhuǎn)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-08-08

最新評論