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

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

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

Android安全加密專題文章索引

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

另外,對(duì)稱加密和消息摘要這兩個(gè)知識(shí)點(diǎn)是可以單獨(dú)拿來使用的。

知識(shí)點(diǎn)串聯(lián):

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

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

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

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

1. 常見算法

MD5、SHA、CRC 等

2. 使用場(chǎng)景

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

例如軟件下載站數(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 進(jìn)制字符串形式展示
String hex = Hex.encode(result);
//MD5 結(jié)果為16 字節(jié)(128 個(gè)比特位)、轉(zhuǎn)換為16 進(jìn)制表示后長(zhǎng)度是32 個(gè)字符
//SHA 結(jié)果為20 字節(jié)(160 個(gè)比特位)、轉(zhuǎn)換為16 進(jìn)制表示后長(zhǎng)度是40 個(gè)字符
System.out.println(hex);

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

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

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

//獲取實(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)文章

  • Android數(shù)據(jù)庫(kù)Room的實(shí)際使用過程總結(jié)

    Android數(shù)據(jù)庫(kù)Room的實(shí)際使用過程總結(jié)

    這篇文章主要給大家介紹了關(guān)于Android數(shù)據(jù)庫(kù)Room的實(shí)際使用過程,詳細(xì)介紹了如何創(chuàng)建實(shí)體類、數(shù)據(jù)訪問對(duì)象(DAO)和數(shù)據(jù)庫(kù)抽象類,需要的朋友可以參考下
    2025-01-01
  • Spinner在Dialog中的使用效果實(shí)例代碼詳解

    Spinner在Dialog中的使用效果實(shí)例代碼詳解

    這篇文章主要介紹了Spinner在Dialog中的使用效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Android使用view仿支付寶月賬單

    Android使用view仿支付寶月賬單

    這篇文章主要為大家詳細(xì)介紹了Android使用view仿支付寶月賬單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Android證書安裝過程介紹

    Android證書安裝過程介紹

    大家好,本篇文章主要講的是Android證書安裝過程介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Android中Fragment的解析和使用詳解

    Android中Fragment的解析和使用詳解

    現(xiàn)在Fragment的應(yīng)用真的是越來越廣泛了,之前Android在3.0版本加入Fragment的時(shí)候,主要是為了解決Android Pad屏幕比較大,空間不能充分利用的問題,但現(xiàn)在即使只是在手機(jī)上,也有很多的場(chǎng)景可以運(yùn)用到Fragment了,這篇文章給大家介紹了Android中Fragment的解析和使用。
    2016-11-11
  • Android中自定義Window Title樣式實(shí)例

    Android中自定義Window Title樣式實(shí)例

    這篇文章主要介紹了Android中自定義Window Title樣式實(shí)例,本文給出效果預(yù)覽和實(shí)現(xiàn)方法,需要的朋友可以參考下
    2015-01-01
  • Android性能優(yōu)化之ViewPagers?+?Fragment緩存優(yōu)化

    Android性能優(yōu)化之ViewPagers?+?Fragment緩存優(yōu)化

    這篇文章主要介紹了Android性能優(yōu)化之ViewPagers+Fragment緩存優(yōu)化,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • ViewFlipper實(shí)現(xiàn)上下翻滾輪播效果

    ViewFlipper實(shí)現(xiàn)上下翻滾輪播效果

    這篇文章主要為大家詳細(xì)介紹了ViewFlipper實(shí)現(xiàn)上下翻滾輪播效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Android開發(fā)筆記XML數(shù)據(jù)解析方法及優(yōu)缺點(diǎn)

    Android開發(fā)筆記XML數(shù)據(jù)解析方法及優(yōu)缺點(diǎn)

    XML數(shù)據(jù)是一種常見的數(shù)據(jù)格式,Android開發(fā)中需要對(duì)其進(jìn)行解析。常用的XML解析方式有DOM、SAX、Pull和Json等,每種方式都有其優(yōu)缺點(diǎn)。開發(fā)者可以根據(jù)具體需求選擇合適的解析方式,提高數(shù)據(jù)解析效率和性能
    2023-05-05
  • Android4.X讀取SIM卡短信和聯(lián)系人相關(guān)類實(shí)例分析

    Android4.X讀取SIM卡短信和聯(lián)系人相關(guān)類實(shí)例分析

    這篇文章主要介紹了Android 4.X讀取SIM卡短信和聯(lián)系人相關(guān)類,以實(shí)例形式分析了Android 4.X讀取SIM卡短信和聯(lián)系人的兩個(gè)相關(guān)類的功能、用法與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10

最新評(píng)論

汤阴县| 重庆市| 溧阳市| 比如县| 滨海县| 出国| 光山县| 镇沅| 凉城县| 保定市| 驻马店市| 华安县| 崇礼县| 凌云县| 麻江县| 阜平县| 桂平市| 时尚| 高台县| 宁波市| 班戈县| 四子王旗| 南溪县| 屏南县| 长葛市| 南木林县| 永德县| 沁水县| 平陆县| 鲁甸县| 湟中县| 万源市| 淳化县| 吉木萨尔县| 旺苍县| 尉犁县| 措美县| 天津市| 广南县| 铁力市| 平乐县|