哈希(Hash)函數?MD5 sha 1/256/512 HMAC
哈希的特征:
?1.該算法是公開的
?2.對於同樣的數據,結果是壹樣的。
?3.對於不同的數據運算,比如MD5,結果是128位,用32個字符的十六進制表示,運算不能反過來。
1.MD5加密
MD5加密的特點:
不可逆操作
加密不同數據的結果是壹個固定長度的32位字符(無論文件有多大)
加密相同的數據,得到相同的結果(即復制)。
反修改:信息指紋,對原始數據的任何改動,哪怕只修改壹個字節,得到的MD5值都大相徑庭。
弱防碰撞:給定原始數據及其MD5值,很難找到壹個MD5值相同的數據(即偽造數據)。
抗沖突性強:很難找到兩個不同的數據,並使它們具有相同的MD5值。
MD5應用程序:
壹致性驗證:MD5將整個文件視為壹個大的文本消息,通過不可逆的字符串變換算法生成唯壹的MD5消息摘要,就像每個人都有自己唯壹的指紋壹樣,MD5為任何文件生成唯壹的數字指紋。
那麽問題來了。妳覺得這種MD5加密安全嗎?其實並不安全。不信妳可以試試這個網站:md5破解網站。可以說妳嗖的壹下就破解了妳的MD5加密!
2.SHA加密
安全哈希算法主要適用於數字簽名標準DSS中定義的數字簽名算法DSA。對於長度小於2 64位的消息,SHA1將生成160位的消息摘要。當收到消息時,該消息摘要可用於驗證數據的完整性。在傳輸的過程中,數據很可能會發生變化,所以此時會生成不同的消息摘要。除了SHA1,還有SHA256和SHA512。
第二,base64加密
1.Base64描述
說明:Base64可以成為密碼學的基石,非常重要。
特性:任何二進制數據都可以進行Base64編碼。
結果:所有數據都可以編碼到壹個文本文件中,該文件只能用65個字符表示。
65個字符:A~Z a~z 0~9+/=
base64編碼後文件數據的變化:編碼後的數據~ =編碼前數據的4/3,會大1/3左右。
2.命令行上的Base64編碼和解碼。
代碼:base 64123 . png-o 123 . txt。
解碼:base64 123 . txt-o test . png-d。
2.Base64編碼原則
1)將所有字符轉換成ASCII碼;
2)將ASCII碼轉換成8位二進制;
3)將3個二進制位分組為壹組(不足3位後為0)***24位,然後分成4組,每組6位;
4)6位二進制前加兩個零,組成8位;
5)將填零的二進制轉換成十進制;
6)從Base64碼表中獲取十進制對應的Base64碼;
處理過程描述:
A.轉換時,將三個字節的數據連續放入24位緩沖區,第壹個字節占據高位。
B.如果數據少於3個字節,緩沖區中的剩余位將被補0。然後,壹次取出6位,根據它們的值查表選擇對應的字符作為編碼輸出。
c .繼續進行,直到所有輸入數據轉換完畢。