簡體   English   中英

PHP md5哈希無法正常工作

[英]PHP md5 hashing not working

我有以下用於注冊到網站的PHP代碼。 為了安全起見,我試圖對密碼進行哈希處理,但是每當我提交虛擬注冊時,密碼都不會在phpMyAdmin中進行哈希處理。 他們看起來很正常。 這是我的代碼:

<?php

//get the values from the form
$Name = $_POST['name'];
$Username = $_POST['username'];
$Password = $_POST['password'];
$RepeatPassword = $_POST['repeatpassword'];

//encrypt the passwords
md5($Password);
md5($RepeatPassword);

//query the database
$query = "INSERT INTO users VALUES ('', '$Name', '$Username', '$Password')";

if (!mysql_query($query)) {

die('Error ' . mysql_error() . ' in query ' . $query);
} 

//check passwords match
if ($Password !== $RepeatPassword) {
echo "Your passwords do not match. <a href='login.php'>Return to login page</a>";

}

//check to see if fields are blank
if ($Name=="") {
echo "Name is a required field. <a href='login.php'>Return to login page</a>";
}

else if ($Username=="") {
echo "Username is a required field. <a href='login.php'>Return to login page</a>"; 
}

else if ($Password=="") {
echo "Password is a required field. <a href='login.php'>Return to login page</a>";
}

else if ($RepeatPassword=="") {
    echo "Repeat Password is a required field. <a href='login.php'>Return to login page</a>";
}

else {
    $_SESSION["message"] = "You have successfully registered! Please login using your username and password.";
    header("Location: login.php");
}
?>

我在網上閱讀的所有教程都說可以按照上述方法進行。 我曾嘗試將md5代碼的兩行放在許多地方,但無濟於事。

md5($Password);
md5($RepeatPassword);

這段代碼基本上什么也不做。 你要:

$Password = md5($Password);
$RepeatPassword = md5($RepeatPassword);

但是最終,MD5在安全性方面做得並不多。 考慮使用bcrypt ,停止使用mysql_*函數,並開始學習有關SQL注入攻擊的知識。

您不會對函數的返回值做任何事情。 它應該是:

$Password = md5($Password);

$RepeatPassword = md5($RepeatPassword);

它不起作用,因為您沒有將md5分配給變量。 做這樣的事情:

$Password = md5($Password);

$RepeatPassword= md5($RepeatPassword);

暫無
暫無

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

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