给下面这段代码加上加盐处理<?php $user = $_POST['username']; $pass = $_POST['password']; if($user && $pass){ $db = new PDO('mysql:host=localhost;dbname=php_wish', 'root', 'root'); $pre = $db->prepare('select * from user where username=:user limit 1'); $pre->execute(['user' => $user]); if($pre->rowCount() > 0){ echo "用户已存在!<br>"; echo "<a href='reg.php'>返回注册页</a>"; } else{ $pre = $db->prepare('insert into user (username, password) values (:user, :pass)'); $pre->execute(['user' => $user, 'pass' => $pass]); echo "注册成功!<br>"; echo "<a href='login.php'>前往登录页</a>"; // print_r($pre->errorInfo()); } } else { echo "注册失败!<br>"; echo "<a href='reg.php'>返回注册页</a>"; }
时间: 2024-03-26 21:37:23 浏览: 95
好的,以下是加盐处理后的代码:
```php
$user = $_POST['username'];
$pass = $_POST['password'];
if($user && $pass){
$db = new PDO('mysql:host=localhost;dbname=php_wish', 'root', 'root');
$pre = $db->prepare('select * from user where username=:user limit 1');
$pre->execute(['user' => $user]);
if($pre->rowCount() > 0){
echo "用户已存在!<br>";
echo "<a href='reg.php'>返回注册页</a>";
}
else{
// 加盐处理
$salt = '123456'; // 自定义盐值
$password = md5($pass . $salt); // 加盐后的密码
$pre = $db->prepare('insert into user (username, password, salt) values (:user, :pass, :salt)');
$pre->execute(['user' => $user, 'pass' => $password, 'salt' => $salt]);
echo "注册成功!<br>";
echo "<a href='login.php'>前往登录页</a>";
// print_r($pre->errorInfo());
}
}
else {
echo "注册失败!<br>";
echo "<a href='reg.php'>返回注册页</a>";
}
```
在这里,我们加入了加盐处理,即在用户输入的密码后面加上一个自定义的盐值(在这里使用了字符串“123456”作为盐值),然后再对该字符串进行 MD5 加密,最终得到加盐后的密码。同时,我们还在数据库中增加了一个字段“salt”,用于保存盐值,以备后续验证时使用。这样,即使黑客获取了数据库中的密码信息,由于不知道盐值,也无法轻易地破解出用户的真实密码。
阅读全文