【Android】編碼與加密

加密

密碼學(xué)

起源:古代戰(zhàn)爭 - 古典密碼學(xué)

移位式加密:密碼棒

加密算法:纏繞木棒后書寫
密鑰:木棒的尺寸規(guī)格


密碼棒.png

替換式加密:

加密算法:替換文字
秘鑰:碼表
原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
碼表:BCDEFGHIJKLMNOPQRSTUVWXYZA
原文:i love you
加密:j mpwf zpv
解密:i love you

現(xiàn)代密碼學(xué)

不止可以用于文字內(nèi)容,還可以用于各種二進(jìn)制數(shù)據(jù)

對稱加密

原理:使用秘鑰和加密算法對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,得到的無意義數(shù)據(jù)即為密文;使用秘鑰
和解密算法對密文進(jìn)行逆向轉(zhuǎn)換,得到原數(shù)據(jù)。
經(jīng)典算法:DES(秘鑰長度太短,容易被破解), AES
對稱加密.png

非對稱加密

原理:使用公鑰對數(shù)據(jù)進(jìn)行加密得到密文;使用私鑰對數(shù)據(jù)進(jìn)行解密得到原數(shù)據(jù)。
雙方各持有自己的私鑰和對方的公鑰,用公鑰加密發(fā)送出去的消息,用私鑰解密對方發(fā)過來的消息
優(yōu)點:可以在不安全網(wǎng)絡(luò)上傳播自己的公鑰。
缺點:計算太復(fù)雜,性能比對稱加密差
非對稱加密1.png

非對稱加密2.png

公鑰能不能解私鑰?
可以互相解的,但是因為公鑰可以被計算出來,所以不可以將私鑰當(dāng)公鑰公開(比特幣,通過橢圓曲線計算)

數(shù)字簽名

經(jīng)典算法:RSA(既可以加密,又可以簽名),DSA(只可以簽名)


數(shù)字簽名.png

但是不確定驗證后的原數(shù)據(jù)是否是真的原數(shù)據(jù),所以下面是增強(qiáng)版數(shù)字簽名,將原文攜帶,方便校驗。


增強(qiáng)版數(shù)字簽名.png

下面是加密+簽名的模型(殘缺版)


加密+簽名.png

下面是完整版模型


加密+簽名(完整版).png

密碼學(xué)秘鑰和登錄密碼

秘鑰(key):相當(dāng)于鑰匙,丟了以后誰也沒有辦法。
場景:用于加密和解密
目的:保證數(shù)據(jù)被盜時不會被人讀懂內(nèi)容
焦點:數(shù)據(jù)
登錄密碼(pasword):又被稱為通行口令。
場景:用戶進(jìn)入網(wǎng)站或游戲前的身份驗證
目的:數(shù)據(jù)提供方或應(yīng)用服務(wù)方對賬戶擁有者數(shù)據(jù)的保護(hù),保證【你是你】的時候才提供權(quán)限
焦點:身份

Base64

從A格式轉(zhuǎn)換成B格式,并且能轉(zhuǎn)換回來。
將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成由64個字符組成的字符串的編碼算法
什么是二進(jìn)制數(shù)據(jù)?
非文本數(shù)據(jù),因為文本數(shù)據(jù)比較特殊,而二進(jìn)制數(shù)據(jù)則是為了區(qū)分文本數(shù)據(jù)
作用:1.將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為字符串
           2.防偷窺(將本來能讀懂的字符串變成讀不懂的字符串)
轉(zhuǎn)換過程.png

碼表.png

Base64加密傳輸圖片,更安全更高效嗎?
并沒有更安全,因為根據(jù)碼表就可以解密。
并沒有更高效,因為字節(jié)碼變多了。

變種Base58

比特幣存儲地址,去除相似的字符

URL encoding

瀏覽器編碼,將URL中的保留字符使用百分號“%”進(jìn)行編碼,目的是為了消除歧義,避免解析錯誤

壓縮與解壓縮

壓縮:把數(shù)據(jù)換一種方式來存儲,以減小存儲空間
解壓縮:把壓縮后的數(shù)據(jù)還原成原先的形式,以便使用
常見壓縮算法:DEFLATE(ZIP)、JPEG、MP3
例:
原數(shù)據(jù):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
壓縮后:
a:41;b:41;

壓縮屬于編碼嗎?

壓縮后又可以解壓縮回來,所以屬于編碼

媒體數(shù)據(jù)的編碼

什么是圖片、音頻、視頻的編解碼?

圖片的編碼:把圖像數(shù)據(jù)寫成JPG、PNG等文件的編碼格式。
圖片的解碼:把JPG、PNG等文件中的數(shù)據(jù)解析成標(biāo)準(zhǔn)的圖像數(shù)據(jù)。
音視頻的編解碼

有損壓縮不可逆,所以不屬于編碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容