Encode、Encrypt、Hash 的差別
Encode 編碼 | Encrypt 加密 | Hash 雜湊 | |
---|---|---|---|
簡單定義 | 原本的資料用不同的詮釋方式產生新的資料 | 利用金鑰來保護資料 | 將資料用公式算出一個無法反推回原本資料的結果 |
是否能還原資料? | 知道編碼方式即可還原資料 | 知道加密方式 + 取得金鑰即可還原資料 | 無法還原資料 |
舉例 | 摩斯密碼 網址編碼 Base64 | AES(對稱加密) RSA(非對稱加密) | md5 SHA1 SHA256 |
密碼要怎麼保存
如果今天在資料庫要保存一個密碼:
- 將密碼編碼後保存:被駭客知道編碼方式,就能還原成原本密碼。
- 將密碼加密後保存:被駭客取得金鑰以及加密方式,就能還原成原本密碼。
- 將密碼雜湊後保存:網路上有人用字典搭配各種雜湊演算法計算過後產生對照表,如果使用者用的密碼是人可閱讀的、常見密碼,就可以從對照表反查出原本密碼。
你可以制定密碼規則,強迫使用者建立比較難想到的密碼(比如要有大小寫、特殊符號、數字),這樣的密碼就比較不會從對照表被反查出來,但會造成使用者要建立自己也記不太住的密碼。
另外一種方式,就是使用者可以建立他們記得住的密碼,然後系統會在密碼後方加上由系統產生的特殊字串(就是所謂的 Salt),達到不造成使用者困擾,又能建立少見密碼的效果。
結論:
將密碼加鹽,雜湊後保存。
0 則回應: