日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护

發(fā)布時(shí)間:2023/12/18 Android 26 如意码农
生活随笔 收集整理的這篇文章主要介紹了 Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Android數(shù)據(jù)加密概述及多種加密方式 聊天記錄及賬戶加密 提供高質(zhì)量的數(shù)據(jù)保護(hù)

  數(shù)據(jù)加密又稱password學(xué),它是一門歷史悠久的技術(shù),指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪摹6饷軇t是通過解密算法和解密密鑰將密文恢復(fù)為明文。數(shù)據(jù)加密眼下仍是計(jì)算機(jī)系統(tǒng)對(duì)信息進(jìn)行保護(hù)的一種最可靠的辦法。它利用password技術(shù)對(duì)信息進(jìn)行加密,實(shí)現(xiàn)信息隱蔽,從而起到保護(hù)信息的安全的作用。

一、概述

  數(shù)據(jù)加密是指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪摹6饷軇t是通過解密算法和解密密鑰將密文恢復(fù)為明文。它產(chǎn)生的歷史相當(dāng)久遠(yuǎn),它是起源于要追溯于公元前2000年(幾個(gè)世紀(jì)了),盡管它不是如今我們所講的加密技術(shù)(甚至不叫加密)。但作為一種加密的概念。確實(shí)早在幾個(gè)世紀(jì)前就誕生了。當(dāng)時(shí)埃及人是最先使用特別的象形文字作為信息編碼的。隨著時(shí)間推移,巴比倫、美索不達(dá)米亞和希臘文明都開始使用一些方法來保護(hù)他們的書面信息。

其最基本方法是易位法和置換法。其模型如右圖。

  加密技術(shù)包含兩個(gè)元素:算法和密鑰。

算法是將普通的文本(或者能夠理解的信息)與一串?dāng)?shù)字(密鑰)的結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來對(duì)數(shù)據(jù)進(jìn)行編碼和解碼的參數(shù)。

  不知不覺中,現(xiàn)實(shí)生活中,我們也在使用加密的技術(shù)。

比如:藏頭詩(shī):

  新雁才聞一兩聲

  年年長(zhǎng)是惹東風(fēng)

  快箭拂下西飛鵬

  樂不專一須鏘鏗

  電報(bào):

  電報(bào)收下來一般都是數(shù)碼比如一份報(bào)是1234 2234 3234…依據(jù)手里的password本用來解密,并且這個(gè)password本是要每隔一定時(shí)間就要換一本的。這在事前收發(fā)兩方就已有約定。什么時(shí)間換什么本。

收下一份報(bào),首先要依據(jù)另外一份password把報(bào)轉(zhuǎn)成真碼,比方1相應(yīng)2,2相應(yīng)3…3相應(yīng)4 原報(bào)文處理成例如以下2345,3345, 4345…當(dāng)然這僅僅是打比方。然后再利用password本,依據(jù)password本上的解密方法,比方2345相應(yīng)“我想”,3345相應(yīng)“要吃”,4345相應(yīng)“雞腿”…合起來就是我想要吃雞腿,你看這過程中沒了password本。特務(wù)即使拿下原報(bào)文1234也沒辦法。

  這些,都是現(xiàn)實(shí)中加密樣例。

二、特征

1. 數(shù)據(jù)保密性 

  保密性:指防止非法授權(quán)用戶獲得實(shí)用信息。現(xiàn)時(shí)生活有對(duì)應(yīng)的樣例,比如,你要將一個(gè)秘密事情告訴別人,故而要將這個(gè)事情悄悄的告訴別人。

這樣可以防止非法用戶獲取授權(quán)。數(shù)據(jù)加密也是基于這種特性。

2. 數(shù)據(jù)完整性

  完整性:指信息沒有被非授權(quán)用戶更改和破壞。包含信息在生成、傳輸、存儲(chǔ)中不被刪除、篡改、偽造等。比如,古代皇帝。下詔的時(shí)候。須要筆記和皇英。就是為了保證數(shù)據(jù)的完整性。

3. 不可抵賴性

不可抵賴性:指實(shí)體無法否認(rèn)或抵賴以前發(fā)送、接受某信息或參與網(wǎng)絡(luò)信息交互活動(dòng)的事實(shí)。古代的簽字畫押。也是這種原理把。

三、經(jīng)常使用加密算法比較

1. Hash算法

  hash算法的意義在于提供了一種高速存取數(shù)據(jù)的方法,它用一種算法建立鍵值與真實(shí)值之間的相應(yīng)關(guān)系,(每個(gè)真實(shí)值僅僅能有一個(gè)鍵值,可是一個(gè)鍵值能夠相應(yīng)多個(gè)真實(shí)值),這樣能夠高速在數(shù)組等條件中里面存取數(shù)據(jù).

2. MD5算法

  MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MITLaboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest開發(fā)出來,經(jīng)MD2、MD3和MD4發(fā)展而來。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個(gè)隨意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù))。無論是MD2、MD4還是MD5。它們都須要獲得一個(gè)隨機(jī)長(zhǎng)度的信息并產(chǎn)生一個(gè)128位的信息摘要。

盡管這些算法的結(jié)構(gòu)或多或少有些相似。但MD2的設(shè)計(jì)與MD4和MD5全然不同,那是由于MD2是為8位機(jī)器做過設(shè)計(jì)優(yōu)化的。而MD4和MD5卻是面向32位的電腦。這三個(gè)算法的描寫敘述和C語(yǔ)言源碼在Internet
RFCs 1321中有具體的描寫敘述(http://www.ietf.org/rfc/rfc1321.txt),這是一份最權(quán)威的文檔,由Ronald L. Rivest在1992年8月向IEFT提交。

Van Oorschot和Wiener以前考慮過一個(gè)在散列中暴力搜尋沖突的函數(shù)(Brute-Force HashFunction),并且他們推測(cè)一個(gè)被設(shè)計(jì)專門用來搜索MD5沖突的機(jī)器(這臺(tái)機(jī)器在1994年的制造成本大約是一百萬(wàn)美元)能夠平均每24天就找到一個(gè)沖突。

但單從1991年到2001年這10年間,竟沒有出現(xiàn)替代MD5算法的MD6或被叫做其它什么名字的新算法這一點(diǎn),我們就能夠看出這個(gè)瑕疵并沒有太多的影響MD5的安全性。上面全部這些都不足以成為MD5的在實(shí)際應(yīng)用中的問題。并且,因?yàn)镸D5算法的使用不須要支付不論什么版權(quán)費(fèi)用的,所以在一般的情況下(非絕密應(yīng)用領(lǐng)域。但即便是應(yīng)用在絕密領(lǐng)域內(nèi),MD5也不失為一種很優(yōu)秀的中間技術(shù))。MD5怎么都應(yīng)該算得上是很安全的了。

  算法的應(yīng)用

  MD5的典型應(yīng)用是對(duì)一段信息(Message)產(chǎn)生信息摘要(Message-Digest),以防止被篡改。比方,在UNIX下有非常多軟件在下載的時(shí)候都有一個(gè)文件名稱同樣。文件擴(kuò)展名為.md5的文件,在這個(gè)文件里通常僅僅有一行文本,大致結(jié)構(gòu)如:

MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

這就是tanajiya.tar.gz文件的數(shù)字簽名。MD5將整個(gè)文件當(dāng)作一個(gè)大文本信息,通過其不可逆的字符串變換算法,產(chǎn)生了這個(gè)唯一的MD5信息摘要。假設(shè)在以后傳播這個(gè)文件的過程中,不管文件的內(nèi)容發(fā)生了不論什么形式的改變(包含人為改動(dòng)或者下載過程中線路不穩(wěn)定引起的傳輸錯(cuò)誤等),僅僅要你對(duì)這個(gè)文件又一次計(jì)算MD5時(shí)就會(huì)發(fā)現(xiàn)信息摘要不同樣,由此能夠確定你得到的僅僅是一個(gè)不對(duì)的文件。

假設(shè)再有一個(gè)第三方的認(rèn)證機(jī)構(gòu),用MD5還能夠防止文件作者的"

抵賴",這就是所謂的數(shù)字簽名應(yīng)用。

  MD5還廣泛用于加密和解密技術(shù)上。

比方在UNIX系統(tǒng)中用戶的password就是以MD5(或其他類似的算法)經(jīng)加密后存儲(chǔ)在文件系統(tǒng)中。當(dāng)用戶登錄的時(shí)候。系統(tǒng)把用戶輸入的password計(jì)算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較,進(jìn)而確定輸入的password是否正確。

通過這種步驟,系統(tǒng)在并不知道用戶password的明碼的情況下就能夠確定用戶登錄系統(tǒng)的合法性。這不但能夠避免用戶的password被具有系統(tǒng)管理員權(quán)限的用戶知道。并且還在一定程度上添加了password被破解的難度。

  正是由于這個(gè)原因,如今被黑客使用最多的一種破譯password的方法就是一種被稱為"跑字典"的方法。

有兩種方法得到字典。一種是日常搜集的用做password的字符串表。還有一種是用排列組合方法生成的,先用MD5程序計(jì)算出這些字典項(xiàng)的MD5值,然后再用目標(biāo)的MD5值在這個(gè)字典中檢索。我們?nèi)绻鹥assword的最大長(zhǎng)度為8位字節(jié)(8
Bytes),同一時(shí)候password僅僅能是字母和數(shù)字,共26+26+10=62個(gè)字符,排列組合出的字典的項(xiàng)數(shù)則是P(62,1)+P(62,2)….+P(62,8),那也已經(jīng)是一個(gè)非常天文的數(shù)字了。存儲(chǔ)這個(gè)字典就須要TB級(jí)的磁盤陣列,并且這樣的方法另一個(gè)前提。就是能獲得目標(biāo)賬戶的passwordMD5值的情況下才干夠。這樣的加密技術(shù)被廣泛的應(yīng)用于UNIX系統(tǒng)中,這也是為什么UNIX系統(tǒng)比一般操作系統(tǒng)更為牢固一個(gè)重要原因。

  算法描寫敘述

  對(duì)MD5算法簡(jiǎn)要的敘述能夠?yàn)椋篗D5以512位分組來處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組。經(jīng)過了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值。

  在MD5算法中,首先須要對(duì)信息進(jìn)行填充,使其字節(jié)長(zhǎng)度對(duì)512求余的結(jié)果等于448。

因此,信息的字節(jié)長(zhǎng)度(Bits Length)將被擴(kuò)展至N*512+448,即N*64+56個(gè)字節(jié)(Bytes),N為一個(gè)正整數(shù)。填充的方法例如以下,在信息的后面填充一個(gè)1和無數(shù)個(gè)0,直到滿足上面的條件時(shí)才停止用0對(duì)信息的填充。

然后。在在這個(gè)結(jié)果后面附加一個(gè)以64位二進(jìn)制表示的填充前信息長(zhǎng)度。

經(jīng)過這兩步的處理。如今的信息字節(jié)長(zhǎng)度=N*512+448+64=(N+1)*512,即長(zhǎng)度恰好是512的整數(shù)倍。這樣做的原因是為滿足后面處理中對(duì)信息長(zhǎng)度的要求。

  MD5中有四個(gè)32位被稱作鏈接變量(Chaining Variable)的整數(shù)參數(shù),他們分別為:A=0x01234567,B=0x89abcdef。C=0xfedcba98,D=0x76543210。

  當(dāng)設(shè)置好這四個(gè)鏈接變量后,就開始進(jìn)入算法的四輪循環(huán)運(yùn)算。循環(huán)的次數(shù)是信息中512位信息分組的數(shù)目。

  將上面四個(gè)鏈接變量拷貝到另外四個(gè)變量中:A到a,B到b。C到c。D到d。

  主循環(huán)有四輪(MD4僅僅有三輪),每輪循環(huán)都非常相似。

第一輪進(jìn)行16次操作。每次操作對(duì)a、b、c和d中的當(dāng)中三個(gè)作一次非線性函數(shù)運(yùn)算,然后將所得結(jié)果加上第四個(gè)變量,文本的一個(gè)子分組和一個(gè)常數(shù)。再將所得結(jié)果向右環(huán)移一個(gè)不定的數(shù),并加上a、b、c或d中之中的一個(gè)。最后用該結(jié)果代替a、b、c或d中之中的一個(gè)。

以一下是每次操作中用到的四個(gè)非線性函數(shù)(每輪一個(gè))。

   F(X,Y,Z) =(X&Y)|((~X)&Z)

   G(X,Y,Z) =(X&Z)|(Y&(~Z))

   H(X,Y,Z) =X^Y^Z

   I(X,Y,Z)=Y^(X|(~Z))

   (&是與。|是或,~是非,^是異或)

  這四個(gè)函數(shù)的說明:假設(shè)X、Y和Z的相應(yīng)位是獨(dú)立和均勻的。那么結(jié)果的每一位也應(yīng)是獨(dú)立和均勻的。F是一個(gè)逐位運(yùn)算的函數(shù)。即,假設(shè)X。那么Y,否則Z。函數(shù)H是逐位奇偶操作符。

  如果Mj表示消息的第j個(gè)子分組(從0到15),<<ff(a,b,c,d,mj,s,ti)表示a=b+((a+(f(b,c,d)+mj+ti)<<gg(a,b,c,d,mj,s,ti)表示a=b+((a+(g(b,c,d)+mj+ti)<<hh(a,b,c,d,mj,s,ti)表示a=b+((a+(h(b,c,d)+mj+ti)<<ii(a,b,c,d,mj,s,ti)表示a=b+((a+(i(b,c,d)+mj+ti)<< <="" p="">

  這四輪(64步)是:

  第一輪

   FF(a,b,c,d,M0,7,0xd76aa478)

   FF(d,a,b,c,M1,12,0xe8c7b756)

   FF(c,d,a,b,M2,17,0x242070db)

FF(b,c,d,a,M3,22,0xc1bdceee)

   FF(a,b,c,d,M4,7,0xf57c0faf)

   FF(d,a,b,c,M5,12,0x4787c62a)

   FF(c,d,a,b,M6,17,0xa8304613)

   FF(b,c,d,a,M7,22,0xfd469501)

   FF(a,b,c,d,M8,7,0x698098d8)

   FF(d,a,b,c,M9,12,0x8b44f7af)

   FF(c,d,a,b,M10,17,0xffff5bb1)

   FF(b,c,d,a,M11,22,0x895cd7be)

   FF(a,b,c,d,M12,7,0x6b901122)

   FF(d,a,b,c,M13,12,0xfd987193)

   FF(c,d,a,b,M14,17,0xa679438e)

   FF(b,c,d,a,M15,22,0x49b40821)

  第二輪

   GG(a,b,c,d,M1,5,0xf61e2562)

   GG(d,a,b,c,M6,9,0xc040b340)

   GG(c,d,a,b,M11,14,0x265e5a51)

   GG(b,c,d,a,M0,20,0xe9b6c7aa)

   GG(a,b,c,d,M5,5,0xd62f105d)

   GG(d,a,b,c,M10,9,0x02441453)

   GG(c,d,a,b,M15,14,0xd8a1e681)

   GG(b,c,d,a,M4,20,0xe7d3fbc8)

   GG(a,b,c,d,M9,5,0x21e1cde6)

   GG(d,a,b,c,M14,9,0xc33707d6)

   GG(c,d,a,b,M3,14,0xf4d50d87)

   GG(b,c,d,a,M8,20,0x455a14ed)

   GG(a,b,c,d,M13,5,0xa9e3e905)

   GG(d,a,b,c,M2,9,0xfcefa3f8)

   GG(c,d,a,b,M7,14,0x676f02d9)

   GG(b,c,d,a,M12,20,0x8d2a4c8a)

  第三輪

   HH(a,b,c,d,M5,4,0xfffa3942)

   HH(d,a,b,c,M8,11,0x8771f681)

   HH(c,d,a,b,M11,16,0x6d9d6122)

   HH(b,c,d,a,M14,23,0xfde5380c)

   HH(a,b,c,d,M1,4,0xa4beea44)

   HH(d,a,b,c,M4,11,0x4bdecfa9)

   HH(c,d,a,b,M7,16,0xf6bb4b60)

   HH(b,c,d,a,M10,23,0xbebfbc70)

   HH(a,b,c,d,M13,4,0x289b7ec6)

   HH(d,a,b,c,M0,11,0xeaa127fa)

   HH(c,d,a,b,M3,16,0xd4ef3085)

   HH(b,c,d,a,M6,23,0x04881d05)

   HH(a,b,c,d,M9,4,0xd9d4d039)

   HH(d,a,b,c,M12,11,0xe6db99e5)

   HH(c,d,a,b,M15,16,0x1fa27cf8)

   HH(b,c,d,a,M2,23,0xc4ac5665)

  第四輪

   II(a,b,c,d,M0,6,0xf4292244)

   II(d,a,b,c,M7,10,0x432aff97)

   II(c,d,a,b,M14,15,0xab9423a7)

   II(b,c,d,a,M5,21,0xfc93a039)

   II(a,b,c,d,M12,6,0x655b59c3)

   II(d,a,b,c,M3,10,0x8f0ccc92)

   II(c,d,a,b,M10,15,0xffeff47d)

   II(b,c,d,a,M1,21,0x85845dd1)

   II(a,b,c,d,M8,6,0x6fa87e4f)

   II(d,a,b,c,M15,10,0xfe2ce6e0)

   II(c,d,a,b,M6,15,0xa3014314)

   II(b,c,d,a,M13,21,0x4e0811a1)

   II(a,b,c,d,M4,6,0xf7537e82)

   II(d,a,b,c,M11,10,0xbd3af235)

   II(c,d,a,b,M2,15,0x2ad7d2bb)

   II(b,c,d,a,M9,21,0xeb86d391)

  常數(shù)ti能夠例如以下選擇:

  在第i步中,ti是4294967296*abs(sin(i))的整數(shù)部分,i的單位是弧度。(4294967296等于2的32次方)全部這些完畢之后,將A、B、C、D分別加上a、b、c、d。然后用下一分組數(shù)據(jù)繼續(xù)執(zhí)行算法。

最后的輸出是A、B、C和D的級(jí)聯(lián)。

  當(dāng)你依照我上面所說的方法實(shí)現(xiàn)MD5算法以后,你能夠用下面幾個(gè)信息對(duì)你做出來的程序作一個(gè)簡(jiǎn)單的測(cè)試。看看程序有沒有錯(cuò)誤。

   MD5 ("") = d41d8cd98f00b204e9800998ecf8427e

   MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661

   MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72

   MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0

   MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b

   MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =

d174ab98d277d9f5a5611c2c9f419d9f

   MD5 ("123456789012345678901234567890123456789012345678901234567890123456789

01234567890") = 57edf4a22be3c955ac49da2e2107b67a

  MD5的安全性

  MD5相對(duì)MD4所作的改進(jìn):

   1. 添加了第四輪。

   2. 每一步均有唯一的加法常數(shù)。

   3. 為減弱第二輪中函數(shù)G的對(duì)稱性從(X&Y)|(X&Z)|(Y&Z)變?yōu)?X&Z)|(Y&(~Z));

   4. 第一步加上了上一步的結(jié)果,這將引起更快的雪崩效應(yīng)。

   5. 改變了第二輪和第三輪中訪問消息子分組的次序,使其更不相似;

   6. 近似優(yōu)化了每一輪中的循環(huán)左移位移量以實(shí)現(xiàn)更快的雪崩效應(yīng)。

各輪的位移量互不同樣。

3. RSA算法

RSA算法是一種非對(duì)稱password算法。所謂非對(duì)稱,就是指該算法須要一對(duì)密鑰。使用當(dāng)中一個(gè)加密。則須要用還有一個(gè)才干解密。

RSA的算法涉及三個(gè)參數(shù)。n、e1、e2。

當(dāng)中,n是兩個(gè)大質(zhì)數(shù)p、q的積,n的二進(jìn)制表示時(shí)所占用的位數(shù),就是所謂的密鑰長(zhǎng)度。 e1和e2是一對(duì)相關(guān)的值,e1能夠隨意取。但要求e1與(p-1)*(q-1)互質(zhì);再選擇e2,要求

(e2*e1)mod((p-1)*(q-1))=1。

(n及e1),(n及e2)就是密鑰對(duì)。

RSA加解密的算法全然同樣,設(shè)A為明文,B為密文,則:A=B^e1 mod n;B=A^e2 mod n;

e1和e2能夠互換使用,即:

A=B^e2 mod n。B=A^e1 mod n;

補(bǔ)充:

對(duì)明文進(jìn)行加密。有兩種情況須要這樣作:

1、您向朋友傳送加密數(shù)據(jù),您希望僅僅有您的朋友能夠解密。這種話,您須要首先獲取您朋友的密鑰對(duì)中公開的那一個(gè)密鑰。e及n。然后用這個(gè)密鑰進(jìn)行加密,這樣密文僅僅有您的朋友能夠解密,由于相應(yīng)的私鑰僅僅有您朋友擁有。

2、您向朋友傳送一段數(shù)據(jù)附加您的數(shù)字簽名。您須要對(duì)您的數(shù)據(jù)進(jìn)行MD5之類的運(yùn)算以取得數(shù)據(jù)的"指紋"。再對(duì)"指紋"進(jìn)行加密,加密將使用您自己的密鑰對(duì)中的不公開的私鑰。您的朋友收到數(shù)據(jù)后,用相同的運(yùn)算獲得數(shù)據(jù)指紋,再用您的公鑰對(duì)加密指紋進(jìn)行解密,比較解密結(jié)果與他自己計(jì)算出來的指紋是否一致,就可以確定數(shù)據(jù)是否的確是您發(fā)送的、以及在傳輸過程中是否被篡改。

密鑰的獲得,通常由某個(gè)機(jī)構(gòu)頒發(fā)(如CA中心)。當(dāng)然也能夠由您自己創(chuàng)建密鑰。但這樣作,

您的密鑰并不具有權(quán)威性。

計(jì)算方面,按公式計(jì)算即可了,假設(shè)您的加密強(qiáng)度為1024位。則結(jié)果會(huì)在有效數(shù)據(jù)前面補(bǔ)0以補(bǔ)齊不足的位數(shù)。補(bǔ)入的0并不影響解密運(yùn)算。

4. DES算法

DES(Data Encryption Standard)滿足了國(guó)家標(biāo)準(zhǔn)局欲達(dá)到的4個(gè)目的:提供高質(zhì)量的數(shù)據(jù)保護(hù)。防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的改動(dòng);具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同一時(shí)候又要便于理解和掌握。

DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊。它所使用的密鑰也是64位,首先,DES把輸入的64位數(shù)據(jù)塊按位又一次組合,并把輸出分為L(zhǎng)0、R0兩部分。每部分各長(zhǎng)32位,并進(jìn)行前后置換(輸入的第58位換到第一位,第50位換到第2位,依此類推,最后一位是原來的第7位),終于由L0輸出左32位,R0輸出右32位,依據(jù)這個(gè)法則經(jīng)過16次迭代運(yùn)算后。得到L16、R16,將此作為輸入,進(jìn)行與初始置換相反的逆置換。即得到密文輸出。

DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。當(dāng)中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data也為8個(gè)字節(jié)64位。是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密,假設(shè)Mode為加密,則用Key去把數(shù)據(jù)Data進(jìn)行加密,生成Data的password形式作為DES的輸出結(jié)果;如Mode為解密。則用Key去把password形式的數(shù)據(jù)Data解密,還原為Data的明碼形式作為DES的輸出結(jié)果。在使用DES時(shí)。兩方預(yù)先約定使用的”password”即Key,然后用Key去加密數(shù)據(jù)。接收方得到密文后使用相同的Key解密得到原數(shù)據(jù),這樣便實(shí)現(xiàn)了安全性較高的傳輸數(shù)據(jù)。

總結(jié)

以上是生活随笔為你收集整理的Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。