Как мне зашифровать этот пароль с помощью MD5 с помощью PHP?

Ниже приведен код, написанный на PHP. База данных, которая проверяет пароли на шифрование паролей с использованием MD5, однако, когда скрипт входа в систему проверяет базу данных на наличие пароля, он проверяет необработанный пароль без шифрования. Я знаком с функцией md5 (), но как бы включить это в следующее:

<?php session_start(); $username = $_POST['username']; $password = $_POST['password']; if ($username && $password) { $connect = mysql_connect("host", "user", "password") or die("Couldn't connect"); mysql_select_db("dbname") or die("Couldn't find the database"); $query = mysql_query("SELECT * FROM users WHERE username='$username'"); $numrows = mysql_num_rows($query); if ($numrows != 0) { while ($row = mysql_fetch_assoc($query)) { $dbusername = $row['username']; $dbpassword = $row['password']; } if ($username == $dbusername && $password == $dbpassword) { echo "You're in! Click <a href='../member.php'>here</a> to enter the member page."; $_SESSION['username'] = $username; }else{ echo "Incorrect password"; } }else{ die("That username does not exist."); } }else{ die("Please enter a valid username and password."); } ?> 

Вы должны проверять и запрашивать базу данных для соответствия, не принося результаты и проверяя их локально. С учетом сказанного:

 $password = md5($_POST['password']); 

Затем также измените:

 SELECT * FROM users WHERE username='$username' AND password='$password' 

Но я бы также посмотрел на использование PDO вместо размещения значений непосредственно в SQL-запросе. По крайней мере, вы должны использовать mysql_real_escape_string чтобы избежать атак атаки.

  $salt=sha1($postpassword); $arr= strlen($postpassword); $count=ceil($arr/2); $stringarr=str_split($postpassword,$count); $password1=hash("sha512", $stringarr['0']); $password2=$salt . ( hash( 'whirlpool', $salt . $stringarr['1'] ) ); return $password1.$password2;