我创建了一个表单来在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,只需一个密码列即可完成