【发布时间】:2014-07-30 21:11:30
【问题描述】:
session_start();
$member_username = $_POST['username'];
$member_password = $_POST['password'];
$crypt_pass = crypt($member_password,"somesalt");
try {
$dbh = new PDO('mysql:host=localhost;dbname='.DB_NAME, DB_USERNAME,DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo "Fatal error.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
$sth = $dbh->prepare("SELECT * FROM ".DB_PREFIX."_users WHERE username = :user AND password = :pass");
$sth->bindParam(':user', $member_username);
$sth->bindParam(':pass', $crypt_pass);
$sth->execute();
$total = $sth->rowCount();
$row = $sth->fetch();
变量$member_password 来自$_POST,但有人可以在这里解释并展示如何加密吗?
$crypt_pass = crypt($member_password,"somesalt");
【问题讨论】:
-
看这里crypt()
-
一般提示:如果您需要有关 PHP 函数的帮助,请转到
http://php.net/name_of_function。 -
您应该忘记使用 crypt,除非您想使用自己独特的盐和哈希代码,PHP 5.5 的新 password_* 会为您处理这一切;如果您没有 PHP 5.5,那么您应该使用 ircmaxell 的 password_compat。
-
这与PDO无关。
标签: php encryption pdo