md5的全稱是message-digest algorithm 5,在90年代初由mit的電腦科學實驗室和rsa data security inc發明,經md2、md3和md4發展而來。
message-digest泛指位元組串(message)的hash變換,就是把乙個任意長度的位元組串變換成一定長的大整數。請注意我使用了「位元組串」而不是「字串」這個詞,是因為這種變換只與位元組的值有關,與字符集或編碼方式無關。
md5將任意長度的「位元組串」變換成乙個128bit的大整數,並且它是乙個不可逆的字串變換演算法,換句話說就是,即使你看到源程式和演算法描述,也無法將乙個md5的值變換回原始的字串,從數學原理上說,是因為原始的字串有無窮多個,這有點象不存在反函式的數學函式。
md5的典型應用是對一段message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在乙個叫 readme.txt檔案中,並對這個readme.txt產生乙個md5的值並記錄在案,然後你可以傳播這個檔案給別人,別人如果修改了檔案中的任何內容,你對這個檔案重新計算md5時就會發現(兩個md5值不相同)。如果再有乙個第三方的認證機構,用md5還可以防止檔案作者的「抵賴」,這就是所謂的數字簽名應用。
md5還廣泛用於加密和解密技術上,在很多作業系統中,使用者的密碼是以md5值(或類似的其它演算法)的方式儲存的, 使用者login的時候,系統是把使用者輸入的密碼計算成md5值,然後再去和系統中儲存的md5值進行比較,而系統並不「知道」使用者的密碼是什麼。
python3 MD5加密用法
首先現安裝包 pip install hashlib1.第一種方法,密碼定死不能改的形式 import hashlib str md5 hashlib.md5 b 123456 hexdigest print md5加密後為 str str md5 upper md5括號中就是定死的形式,2.第二種...
MD5資料加密小記
static nsstring token hjsdfklsa1234 加 令牌 令牌內容可自由發揮 nsstring mymd5 nsstring md5 return result property nonatomic,strong nsstring loginpwd 宣告加密口令 nsstri...
MD5加密儲存資料
為了保證資料的隱蔽性以及處於安全方面的考慮,我們往往會將一些存入資料庫的有關密碼的資料使用加密的方式儲存起來,其中md5就是一種常用的加密方式 我知道的有兩種方法都可以達到加密的效果 1.在資料插入前加密 2.在插入資料時加密 2.1 在資料傳入前加密 commons codecgroupid co...