php中写salt,请快速检查这个PHP+SALT实现-不工作?
在教程的基礎(chǔ)上,使用salt實(shí)現(xiàn)一個(gè)基本的用戶注冊+登錄系統(tǒng)。目前我在注冊階段使用這個(gè):
define('SALT_LENGTH', 9);
function generateHash($plainText, $salt = null)
{
if ($salt === null)
{
$salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
}
else
{
$salt = substr($salt, 0, SALT_LENGTH);
}
return $salt . sha1($salt . $plainText);
}
$newpass = generateHash($_POST['newpass']);
followed by:
$sql = "INSERT INTO user SET
userid = '$_POST[newid]',
password = PASSWORD('$newpass'), ... etc"
這個(gè)很好用。
我現(xiàn)在要比較輸入密碼以檢查是否相等(在單獨(dú)的訪問控制文件中):
define('SALT_LENGTH', 9);
function generateHash($plainText, $salt)
{
$salt = substr($salt, 0, SALT_LENGTH);
return $salt . sha1($salt . $plainText);
}
$sql = "SELECT password FROM user WHERE
userid = '$uid'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$comparepwd = generateHash($pwd, $row['password']);
if (mysql_num_rows($result) == 0 || $comparepwd != $row['password']) {
//access denied, unset session variables
}
INSERT INTO user SET
userid = '$_POST[newid]',
password = PASSWORD('$newpass')
密碼('$newpass')會(huì)對(duì)MySQL產(chǎn)生進(jìn)一步的影響嗎?
總結(jié)
以上是生活随笔為你收集整理的php中写salt,请快速检查这个PHP+SALT实现-不工作?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django工具:Git简介与基本操作
- 下一篇: php 函数报错,PHP报错函数erro