加密
密碼學(xué)
起源:古代戰(zhàn)爭 - 古典密碼學(xué)
移位式加密:密碼棒
加密算法:纏繞木棒后書寫
密鑰:木棒的尺寸規(guī)格
替換式加密:
加密算法:替換文字
秘鑰:碼表
原文: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
非對稱加密
原理:使用公鑰對數(shù)據(jù)進(jìn)行加密得到密文粥血;使用私鑰對數(shù)據(jù)進(jìn)行解密得到原數(shù)據(jù)情屹。
雙方各持有自己的私鑰和對方的公鑰坪仇,用公鑰加密發(fā)送出去的消息,用私鑰解密對方發(fā)過來的消息
優(yōu)點(diǎn):可以在不安全網(wǎng)絡(luò)上傳播自己的公鑰垃你。
缺點(diǎn):計算太復(fù)雜椅文,性能比對稱加密差
公鑰能不能解私鑰?
可以互相解的惜颇,但是因為公鑰可以被計算出來皆刺,所以不可以將私鑰當(dāng)公鑰公開(比特幣,通過橢圓曲線計算)
數(shù)字簽名
經(jīng)典算法:RSA(既可以加密凌摄,又可以簽名),DSA(只可以簽名)
但是不確定驗證后的原數(shù)據(jù)是否是真的原數(shù)據(jù)羡蛾,所以下面是增強(qiáng)版數(shù)字簽名,將原文攜帶锨亏,方便校驗林说。
下面是加密+簽名的模型(殘缺版)
下面是完整版模型
密碼學(xué)秘鑰和登錄密碼
秘鑰(key):相當(dāng)于鑰匙煎殷,丟了以后誰也沒有辦法。
場景:用于加密和解密
目的:保證數(shù)據(jù)被盜時不會被人讀懂內(nèi)容
焦點(diǎn):數(shù)據(jù)
登錄密碼(pasword):又被稱為通行口令腿箩。
場景:用戶進(jìn)入網(wǎng)站或游戲前的身份驗證
目的:數(shù)據(jù)提供方或應(yīng)用服務(wù)方對賬戶擁有者數(shù)據(jù)的保護(hù),保證【你是你】的時候才提供權(quán)限
焦點(diǎ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.防偷窺(將本來能讀懂的字符串變成讀不懂的字符串)
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ù)牵现。
音視頻的編解碼
有損壓縮不可逆铐懊,所以不屬于編碼