-3
registeration期間,我散列和鹽密碼如下密碼SHA散列登錄
// Create a random salt
$salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
// Create salted password (Careful not to over season)
$pass = hash('sha512', $pass.$salt);
鹽和通被存儲在數據庫中。但我不知道如何使用哈希和鹽漬密碼創建登錄表單。任何人都可以幫助我下面是我的登錄表格
//session_start();
if (
isset($_POST['username']) &&
isset($_POST['pass']) &&
!empty($_POST['username']) &&
!empty($_POST['pass'])
) {
$db = new PDO(
'mysql:host=localhost;dbname=timeline', // dsn
'root', // username
'' // password
);
$statement = $db->prepare('
SELECT * FROM users
WHERE username = ?
AND password = ?
');
$statement->execute(array(
$_POST['username'],
$_POST['pass']
));
if ($row = $statement->fetch()) {
$_SESSION['sess_user'] = $row['uid'];
$_SESSION['sess_name'] = $row['username'];
include('success.php');
} else include('fail.php');
} else include('fail.php');
我們需要更多信息:鹽在哪裏?散列在哪裏? –
您應該使用新的[密碼散列擴展](http://php.net/manual/en/book.password.php)。如果您的PHP爲<5.5.0,請使用[compatibility library](https://github.com/ircmaxell/password_compat)。另外,你需要更詳細地解釋你正在嘗試做什麼 - 這一點目前還不太清楚。 –