摘要:永遠使用哈希算法來處理密碼。絕不要使用弱哈希或已被破解的哈希算法,像或。只要你對密碼進行哈希處理了,那么無論是技術上,還是在存儲上都沒有任何限制。
在你的應用程序中正確處理密碼是非常關鍵的。前陣閱讀CI手冊,發(fā)現CodeIgniter對密碼處理的總結對我很有幫助,把這個清單分享給大家,它告訴你什么該做,什么不該做。
絕不要以明文存儲密碼。永遠使用 哈希算法 來處理密碼。
絕不要使用 Base64 或其他編碼方式來存儲密碼。這和以明文存儲密碼是一樣的,使用哈希 ,而不要使用編碼。
(編碼以及加密,都是雙向的過程,而密碼是保密的,應該只被它的所有者知道, 這個過程必須是單向的。哈希正是用于做這個的,從來沒有解哈希這種說法, 但是編碼就存在解碼,加密就存在解密。)
絕不要使用弱哈希或已被破解的哈希算法,像 MD5 或 SHA1。
(這些算法太老了,而且被證明存在缺陷,它們一開始就并不是為了保存密碼而設計的。另外,絕不要自己發(fā)明算法。)
只使用強密碼哈希算法,例如 BCrypt。
(在 PHP 自己的 密碼哈希 函數中也是使用它。)
絕不要以明文形式顯示或發(fā)送密碼。
(即使是對密碼的所有者也應該這樣。如果你需要 "忘記密碼" 的功能,可以隨機生成一個新的 一次性的(這點很重要)密碼,然后把這個密碼發(fā)送給用戶。)
絕不要對用戶的密碼做一些沒必要的限制。
(如果你使用除 BCrypt(它有最多 72 字符的限制)之外的其他哈希算法,你應該設置一個相對長一點的密碼長度(例如 1024 字符),這樣可以緩解 DoS 攻擊。但是除此之外,對密碼的其他限制諸如密碼中只允許使用某些字符,或者密碼中不允許包含某些字符,就沒有任何意義了。這樣做不僅不會提高安全性,反而 降低了 安全性,而且真的沒有任何理由需要這樣做。 只要你對密碼進行哈希處理了,那么無論是技術上,還是在存儲上都沒有任何限制。)
擴展閱讀:[鑒]PHP處理密碼的幾種方式:https://segmentfault.com/a/1190000003024932
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38942.html
摘要:永遠使用哈希算法來處理密碼。絕不要使用弱哈希或已被破解的哈希算法,像或。只要你對密碼進行哈希處理了,那么無論是技術上,還是在存儲上都沒有任何限制。 在你的應用程序中正確處理密碼是非常關鍵的。前陣閱讀CI手冊,發(fā)現CodeIgniter對密碼處理的總結對我很有幫助,把這個清單分享給大家,它告訴你什么該做,什么不該做。 絕不要以明文存儲密碼。永遠使用 哈希算法 來處理密碼。 絕不要使用 ...
閱讀 1631·2021-10-27 14:13
閱讀 1868·2021-10-11 10:59
閱讀 3367·2021-09-24 10:26
閱讀 1925·2019-08-30 12:48
閱讀 3041·2019-08-30 12:46
閱讀 2033·2019-08-30 11:16
閱讀 1414·2019-08-30 10:48
閱讀 2740·2019-08-29 16:54