如何使用php加密登录表单中的密码


How to encrypt the password in the login form using php

我创建了一个表单来在sql server中插入数据(用户名和密码)。那里的密码已经加密。我现在的问题是,我是否要在参数化查询中插入$encrypt_pass。

<?php 
$pass= $_POST['pass'];
$encrypt_pass=md5($pass);
$params = array($_POST['user'], $encrypt_pass);
$server = "MELODY-PC'SQLEXPRESS"; 
$options = array("Database"=>"customerdb", "UID"=>"dbadmin", "PWD"=>"melodyjerah"); 
$conn = sqlsrv_connect($server, $options); 
$sql = "SELECT * FROM accounting_login WHERE username = ? and password = ?"; 
$stmt = sqlsrv_query($conn, $sql, $params); 
if(sqlsrv_has_rows($stmt)) 
{ 
    header("Location: page_accounting.php");    
} 
else 
{ 
    echo "Invalid USERNAME or PASSWORD!"; 
} 
?>

如果您有php 5.5,请使用此

$password = password_hash($password_from_input, PASSWORD_DEFAULT); //store this in db

在login_form.php 中

$true = password_verify($password_from_input, $password_in_db); // returns TRUE or FALSE

您不需要salt,只需一个密码列即可完成