2011-04-21 17 views
1

我在其他文章中看到過這些信息,但大部分都是用已知值(如用戶名)進行醃製。在joined日期時間(或日期時間爲joined的MD5)中輸入一個密碼是一種安全的方式,如果joined數據沒有暴露在站點中的任何位置,那麼這是一種進一步保護憑據的安全方式?使用「加入」日期時間提供密碼

在此先感謝!

回答

8

用真正的隨機鹽代替鹽。猜測一個基於日期的鹽似乎有點太容易了,特別是如果有人知道該人是該網站的成員有多長時間。

你可以這樣做:

$salt = substr(sha1(uniqid(mt_rand(), true)), 0, 16); 
+3

+1:鹽應始終** **是隨機的,併爲每個用戶不同。 – 2011-04-21 21:17:28

+0

@TaylorOtwell夠公平!我一直在想,既然它已經到了秒鐘的時間,我也可以使用MD5,我可以避免在用戶數據庫中添加另一個字段。謝謝。 – RANGER 2011-04-21 21:18:40

+0

@cbh - 是的,你需要繼續並添加一個「鹽」字段。它會更安全。 – TaylorOtwell 2011-04-21 21:20:30

0

我確實是這樣的:

$password = mysqli_real_escape_string($connect, $_POST['password']); 
$salt_shaker = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM)); 
$salted = $password.$salt_shaker;