認證過程中常用的加密演算法MD5 Base64

2021-10-01 13:18:37 字數 1187 閱讀 6757

在程式設計過程中,md5加密演算法和base64編碼都是十分常用的,那麼md5和base64編碼有什麼作用和區別呢?

一、md5

1)什麼是md5?

md5訊息摘要演算法(英語:md5 message-digest algorithm),一種被廣泛使用的密碼雜湊函式,可以產生出乙個128位(16位元組)的雜湊值(hash value),用於確保資訊傳輸完整一致。md5由美國密碼學家羅納德·李維斯特(ronald linn rivest)設計,於2023年公開,用以取代md4演算法。這套演算法的程式在 rfc 1321 中被加以規範。

將資料(如一段文字)運算變為另一固定長度值,是雜湊演算法的基礎原理。

2023年後被證實存在弱點,可以被加以破解,對於需要高度安全性的資料,專家一般建議改用其他演算法,如sha-2。2023年,證實md5演算法無法防止碰撞(collision),因此不適用於安全性認證,如ssl

公開金鑰認證或是數字簽名等用途。

2023年,中國科學院的謝濤和馮登國僅用了220.96的碰撞演算法複雜度,破解了md5的碰撞抵抗,該攻擊在普通計算機上執行只需要數秒鐘[3]。

參考:2)md5的特點

3)md5應用場景

儲存密碼:資料庫中儲存的是使用者密碼的md5值,用於不可逆的特點,所以密碼已不可見的方式儲存,在認證對比時,只需要對比密文是否一致

檔案一致性校驗:比較檔案前後的md5,判斷檔案是否出錯或被修改

二、base64編碼

1)什麼是base64?

base64是一種基於64個可列印字元來表示二進位制資料的表示方法。每6個位元為乙個單元,對應某個可列印字元。3個位元組有24個位元,對應於4個base64單元,即3個位元組可由4個可列印字元來表示。它可用來作為電子郵件的傳輸編碼。在base64中的可列印字元包括字母a-za-z、數字0-9,這樣共有62個字元,此外兩個可列印符號在不同的系統中而不同。一些如uuencode的其他編碼方法,和之後binhex的版本使用不同的64字符集來代表6個二進位制數字,但是不被稱為base64。

base64並不是加密演算法,而應該稱為乙個編碼演算法,因為標準base64編碼解碼無需任何額外資訊,即完全可逆。

base64編碼本質是一種將二進位制資料轉成文字資料的演算法。

2)base64特點

3)base64應用場景

md5加密演算法

md5.h ifndef md5h define md5h include include void rol unsigned int s,unsigned short cx 32位數迴圈左移實現函式 void ltob unsigned int i b l互轉,接受uint型別 unsigned ...

MD5加密演算法

md5訊息摘要演算法 message digest algorithm 它對輸入的任意長度的訊息進行運算,產生乙個128位的訊息摘要。演算法原理 資料填充 填充訊息使其長度與448模512同餘 長度 448 mod 512 即時訊息長度本身已經滿足了上述長度要求也需要填充。填充方法 附乙個1在訊息後...

加密演算法 MD5

一 簡介 md5的全稱是message digest algorithm 5 資訊摘要演算法 在90年代初由mit laboratory for computer science和rsa data security inc的ronald l.rivest開發出來,經md2 md3和md4發展而來。訊...