一般來說我的註冊密碼是 54321 ,那麼我存在MySql或MSSQL等資料庫裡,不會明目張膽的存 54321 ,而是會方入一個函式加密公式,比如說常用的MD5()函式,他會得到一串32個由0~9 A~F排列組合的加密文,而 md5("54321") 就會得到01cfcd4f6b8770febfb40cb906715822 ,我就會把這一串加密後的32位字串存入資料庫的密碼欄中。就算資料庫被人看到欄位內的加密文,因為MD5() 算是不可反運算得出54321 的加密方式,所以得知32位字串也不能反算出原密碼。
那我又如何作出檢證呢?這種方式也是很常使用的,把我在登入時,輸入 44444 ,再使用 md5("44444") 算出的是 79b7cdcd14db14e9cb498f1793817d69 ,再拿去和資料庫密碼欄的 01cfcd4f6b8770febfb40cb906715822 if() 後發現密碼不相等,所以就可以顯示登入失敗了。 |
線上試用MD5() 加密
http://www.jdoit3.com/tools/md5-hash.php
沒有留言:
張貼留言