Dun*_*mer 0 php md5 login system
嘿家伙我正在尝试建立一个使用MD5加密密码的登录系统.我有加密工作,所有这只是出于某种原因,当我在登录页面输入密码"palmer"并点击登录按钮我发送给我一个页面,它告诉我加密密码和使用"palmer"作为它输出的密码"Duncan使用密码登录4844fd4088ef5278ad18f892808ebda8 - palmer".加密时数据库中的密码是"4669a6b46c8d891b373cfcd664dff6".为什么两个密码不同?我使用相同的盐(盐是"a123b123".
下面是我的代码,它在寄存器上加密密码:
$password = $_POST['password'];
$md5pass = md5($salt.md5($password));
Run Code Online (Sandbox Code Playgroud)
以下是我的登录代码.
<?php
session_start();
include('config/config.php');
$email = $_POST['email'];
$password = $_POST['password'];
$pass2 = md5($salt.md5($password));
$check = mysql_query("SELECT `email`,`password` FROM user WHERE (`email`='$email' AND `password`='$pass2')") or die(mysql_error());
$count = mysql_num_rows($check);
//if($count == 1) {
$_SESSION['user'] = strtoupper($user);
//header('Location: /panel/index.php');
echo("Duncan Logged in using password $pass2 - $pass");
//} else {
//$_SESSION['errormsg'] = "<div id='error'><strong>Error:</strong> Invalid Username or Password!</div>";
//header('Location: index.php');
//}
?>
Run Code Online (Sandbox Code Playgroud)
你必须存储你的盐 - 并且请使用随机盐,这样两个拥有相同密码的用户将获得不同的摘要! - 某处供以后使用:
$salt = sha1(getRandomSalt());
$digest = sha1($password.$salt).'$'.$salt; // use sha1 instead of md5
Run Code Online (Sandbox Code Playgroud)
稍后您可以使用相同的盐检查提供的密码:
list($stored_pw, $stored_salt) = explode('$', $stored_digest);
if($stored_pw == sha1($user_provided_pw.$stored_salt)) {
echo 'user provided correct password';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8388 次 |
| 最近记录: |