1. 程式人生 > >MD5加密和加鹽

MD5加密和加鹽

概要

The MD5 message-digest algorithm is a widely used cryptographic hash function producing a 128-bit (16-byte) hash value, typically expressed in text format as a 32-digit hexadecimal number. MD5 has been utilized in a wide variety of cryptographic applications and is also commonly used to verify data integrity.

MD5演算法是一種被廣泛使用的hash函式,用於對任意長的輸入生成一串128bit的hash值(就是32位十六進位制數)。MD5被廣泛用來加密和驗證資料完整性。

用於加密

直接對使用者的密碼進行md5運算,可以得到一串雜湊值,這是最簡單的加密。理論上從密文是幾乎無法的到明文的;
然而可以對有窮的簡單密碼們進行hash,得到簡單密碼以及對應的密文,直接對比密文可以就找到對應的明文。

加鹽

// 直接加密
var hash = md5(password);
// 加鹽
var hash = md5(md5(password)+salt);

簡單地講,加鹽就是在需要hash的值後面加上一串自定義的字串,用來避免簡單密碼被“反向破解“;
這樣子從密文要反推出原式密碼會變得非常困難;

用於校驗檔案完整性

雖然理論上md5的輸出是有限的(2^128),而輸入可以是任意的,因此必然存在某些輸入具有一樣的輸出,也就是所謂的md5碰撞;
不過對於大多數情況,計算檔案的md5,與檔案提供者的md5進行比較,可以用來保證檔案不經篡改。