【发布时间】:2013-04-15 18:20:07
【问题描述】:
我想知道如何编辑我的代码以加密用户密码。目前,用户填写了一个 HTML 表单,该表单提交给customerRegister.php,该表单在提交查询之前会经过一系列验证。
customerRegister.php
registerUser($_POST['firstName'], $_POST['lastName'], $_POST['username'], $_POST['houseNo'], $_POST['StreetName'], $_POST['town'], $_POST['postCode'], $_POST['emailAddress'], $_POST['phoneNumber'], $_POST['password'], $_POST['conPassword'],$_POST['carRegistration'],$_POST['carMake'],$_POST['carModel'],$_POST['carYear'],$_POST['carEngineSize'],$_POST['carFuel']);
function registerUser($firstName, $lastName, $username, $houseNo, $streetName, $town, $postCode, $emailAddress, $phoneNumber, $password, $conPassword, $registration, $carMake, $carModel, $carYear, $carEngineSize, $carFuel) {
$registerQuery = new UserLoginQueries();
/********************************
SERIES OF VALIDATIONS
********************************/
$registerQuery->insertUser($firstName, $lastName, $username, $houseNo, $streetName, $town, $postCode, $emailAddress, $phoneNumber, $password);
然后将这些详细信息传递给执行查询的 userLoginQueries.php。
userLoginQueries.php
public function insertUser($custFirstName, $custLastName, $username, $houseNo, $streetName, $town, $postCode, $email, $number, $pass) {
$sth = $this->conn->prepare("INSERT INTO `customer`(`CustFirstName`, `CustLastName`, `HouseNo`, `StreetName`, `Town`, `PostCode`, `EmailAddress`, `PhoneNumber`, `Username`, `Password`) VALUES (?,?,?,?,?,?,?,?,?,?)");
$sth->bindValue (1, $custFirstName);
$sth->bindValue (2, $custLastName);
$sth->bindValue (3, $houseNo);
$sth->bindValue (4, $streetName);
$sth->bindValue (5, $town);
$sth->bindValue (6, $postCode);
$sth->bindValue (7, $email);
$sth->bindValue (8, $number);
$sth->bindValue (9, $username);
$sth->bindValue (10, $pass);
$sth->execute();
}
当用户输入他们的登录信息时,会运行以下查询:
public function queryLogin($username, $password) {
$sth = $this->conn->prepare("SELECT * FROM customer WHERE Username = ? AND Password = ? AND UserType = 'Customer'");
$sth->bindValue (1, $username);
$sth->bindValue (2, $password);
$sth->execute();
$count = $sth->rowCount();
return $count;
}
如何修改我的代码以加密用户密码?
【问题讨论】:
-
我已经检查了文档,但对我来说不是很清楚。
-
@Sparksis 不,这些函数应该只供 MySQL 用户使用!
-
您可以在 php 中使用 md5 哈希并将其存储在您的数据库中。这取决于您是否需要解密密码。
-
@Gumbo 该功能是有限且可配置的,将其用于应用程序密码散列有什么问题。
标签: mysql sql authentication encryption