我已經設法創建了一個基本的加密系統,因此當用戶最初註冊到我的網站時,密碼將安全地使用salt,md5和sha1存儲在我的數據庫中。登錄時使用salt和md5加密的問題
現在,用戶登錄時發生問題,即使我使用相同的方法,發送到數據庫的字符串(密碼)也不同。我將在下面演示:
這是我的基本(現在)使用鹽技術將客戶添加到數據庫頁面。
require "dbconn.php";
$username = $_GET['username'];
$email = $_GET['email'];
$pass = $_GET['pwd1'];
$pass2 =$_GET['pwd2'];
$matching = 0;
if($pass == $pass2)
{
echo "<script type='text/javascript'> window.alert('Your details have been successfully registered, please proceed to login with your new credentials!')</script>";
echo '<script>javascript:window.close();</script>';
$salt = sha1(md5($pass));
$pass = md5($pass.$salt);
$query = "INSERT INTO customer VALUES ('".$username."','".$email."','".$pass."','face1.jpg')";
再次,這是我的基本(現在)重新登錄使用相同的鹽技術頁面(我已經離開了這個頁面的後半部分)
session_start();
require "dbconn.php";
$username = $_GET['username'];
$password = $_GET['password'];
$salt = sha1(md5($password));
$password = md5($password.$salt);
$sql = "SELECT * FROM customer WHERE username ='".$username."' AND password='".$password."'";
我已經做了一些檢查,當把一個密碼進入數據庫 例如使用密碼名測試:它被存儲爲34364c859afb02e70306c905374ac2但是當密碼的用戶登錄是:34364c859afb02e70306c905374ac2d5
總是逃避用戶輸入!使用'mysql_real_escape_string()'來轉義它,否則任何人都可以利用你的網站! – MMM 2013-03-20 15:21:49
看看[本頁](http://gnorman.org/index.php?option=com_content&view=article&id=238&Itemid=274)。也許你應該將數據類型改爲tinyblob。 – 2013-03-20 15:23:47
檢查數據庫中字段的長度 – Curlas 2013-03-20 15:24:34