簡體   English   中英

這是在PHP中存儲密碼的不良做法嗎?

[英]Is this a bad practice for storing passwords in PHP?

我正在PHP中使用crypt函數來哈希密碼,顯然還有salt。 但是我通過在date函數上調用md5函數來生成鹽。 每次用戶登錄時,鹽都會重新生成。

這有什么壞處嗎? 對於PHP(和Webdev),我還是一個相對較新的人,在部署此代碼之前,我試圖確保安全。

$salt = md5(date('m/d/Y h:i:s a'));

許多人認為這是不良做法。 原因如下:

  1. 您正在使用md5(弱,舊且快速)來計算哈希值。
  2. 鹽以可預測的方式生成。 每個用戶使用的鹽應該有所不同(即使在同一秒內注冊),並且比日期更隨機。
  3. 您正在重新發明輪子。 您正在使用crypt函數對密碼進行哈希處理,因此沒有理由不使用它來獲取安全密碼。 password_hash()是PHP 5.5的內置函數,並且是一個稍早於該版本的兼容性庫

如何使用password_hash()

TL; DR:使用password_hash()生成鹽並對密碼進行哈希處理,無需以不太安全的方式重新發明輪子。

感謝Hobo Sapiens首先提到password_hash()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM