文章專區

網頁程式技術探討

密碼儲存加密了嗎?

 現今網際網路技術發展快速,許多資訊越來越透明,相對駭客破解密碼的技術也越來越高明,面對這樣的情況,密碼的安全編制與加密就不能像以往早期的這麼簡易,跟著安全技術的演進,我們可以大約瞭解大多數的密碼儲存有底下幾種方式

1.  明文儲存
明文就是沒有加密的文字,密碼採用明文傳輸或存放,駭客只要有監聽或入侵伺服器的動作,那麼駭客就能輕易的取走了所有人的密碼。將會有很多安全風險。

2.  對稱式加密演算法加密後儲存
對稱式加密是透過相同的金鑰來加、解密,如:DESTriple DESRijndaelAES)等,即便是已加密過後的字串,但只要有人拿到加密的金鑰並依其可逆之特性還是能讓這些加密後的字串還原回來。

3.  雜湊(Hash)加密後儲存
雜湊式加密為以往較多人使用的加密方法,如:MD5SHA1SHA256等為不可逆之演算法,不像對稱演算法可以靠程式運算還原內容,但經過多方研究後,如果透過對照表Rainbow Table)還是有機會對照出原始密碼。

4.  雜湊(Hash)並加鹽(Salt)加密後儲存

透過雜湊儲存密碼依然不夠安全,所以我們要再多加些鹽(Salt)來提升安全性,可以利用隨機函數產生Salt,這也是為了避免相同資料產生相同雜湊值。

加「鹽」(Salt)指的是,在密碼以雜湊(Hash)加密前,先在密碼的前面或後面或以特定規則於密碼中加入一些字元,而且這些被加入的字元以亂數產生,一方面增加密碼的長度,一方面因為這些字元是亂數產生,可大幅增加駭客破解的難度!

我們將原始密碼與鹽字元放在一起,明碼123456 + 鹽字元915430BB-165D-49A3-BAE3-329984CC47D3經過MD5雜湊後的結果是8775387801BDEE3123554D4EAE697C30因密碼有用Salt且隨著鹽的複雜度增加,想利用Rainbow Table或自行撰寫程式等方式進行破解就更加有難度。

 

             隨著網路平台日益發達,駭客攻擊手法也越來越多,如果可以一定要透過加密方式來保存機密資料以便保障使用者個資安全。