如果我没有错,当你想加密数据库中的内容时,你将使用md5.我现在用它来输入密码.但现在我想为企业客户的所有个人信息添加加密.以下是我的问题:
如果我md5的一切,将PHP显示一切正常的方式,就像没有md5?
当我允许编辑内容时,我将不使用md5显示信息,然后在提交时添加md5,对吗?
如果有人访问数据库,他们只会看到md5.但如果他们下载然后删除md5,他们不会看到所有的信息吗?
你可以告诉我在压力下我是一个业余爱好者.如果我对md5的想法错了,请纠正我.如果是这样,我如何加密数据库,记住信息将由用户随时编辑.
谢谢.
如果密码在ajax之前加密,那么阻止黑客捕获加密密码并使用它登录的是什么?
是否应事先从后端发送独特的盐?
黑客也不能捕获它吗?
我的问题的背景:
我完成了本教程
http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL
教程
浏览器端的加密密码,然后将密码发送到后端它存储在db中
从那个链接开始,第一条评论在我脑海中浮现,
"什么是阻止黑客获取哈希密码并登录?"
我想问一下,是否可以为每个用户生成一个唯一的salt然后哈希,就好像
sha1(sha1($password . $salt))
$ salt是一个随机生成的字符串?
如果是,我将如何在登录时加密密码?
Xenforo使用这个,我想知道如果他们为每个用户使用独特的盐,他们如何加密密码?
非常感谢.
我创建了一个注册表格,处理如下:
function register_user() {
global $conn;
$name = sanitize($_POST['name']);
$email = sanitize($_POST['email']);
$password = sanitize($_POST['password']);
$salt = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
$saltedPW = $password . $salt;
$hashedPW = hash('sha256', $saltedPW);
mysqli_query($conn, "INSERT INTO users (name, email, password, salt) VALUES ('$name', '$email', '$hashedPW', '$salt')");
Run Code Online (Sandbox Code Playgroud)
然后按如下方式处理登录表单:
function login($email, $password) {
global $conn;
$user_id = user_id_from_username($email);
$query = mysqli_query($conn, "SELECT salt FROM users WHERE email = '$email'");
$row1 = mysqli_fetch_assoc($query);
$salt = $row1['salt'];
$saltedPW = $password . $salt;
$hashedPW = hash('sha256', $saltedPW);
$result = mysqli_query($conn, …Run Code Online (Sandbox Code Playgroud) 是否可以使用状态功能处理位于minions上的saltstack来处理json文件?
我确信应该可以使用jinja的功能,但找不到任何信息.
我很难搞清楚为什么用户密码散列不起作用.
我这样做的方法是常规方法,在注册时我创建一个randam盐并与密码和商店结合,但当我尝试匹配登录密码时,他们失败了:(
<?php
class Model_users extends ModelType_DatabasePDO
{
//...
public function CheckCredentials($username,$password)
{
$statement = $this->prepare('SELECT user_id,user_salt,user_password FROM users WHERE user_username = :u');
$statement->bindValue(':u',$username);
if($statement->execute())
{
$user_data = $statement->fetch(PDO::FETCH_OBJ);
//Create a new hash with salt
$combined = $this->CombineHash($password,$user_data->user_salt);
//Check the combination is correct!
if($combined == $user_data->user_password)
{
return true;
}
var_dump($user_data->user_salt,$combined);
return false;
}
return false;
}
//...
public function AddUser($userdata)
{
if($userdata['username'] && $userdata['password'] && $userdata['email'] && $userdata['nickname'])
{
$statement = $this->prepare('INSERT INTO users (user_username,user_password,user_salt,user_email,user_nickname) VALUES (:username,:password,:salt,:email,:nickname)');
//Generate hashes …Run Code Online (Sandbox Code Playgroud) 与使用salt相比,AES在将密码存储到数据库时不会更安全地保护密码.注意:不关心性能,只关心安全性.哪一个会更安全.此外,将加密密钥存储在另一个数据库服务器中的加密显然不是更好.
salt ×7
php ×4
encryption ×3
hash ×3
login ×2
mysql ×2
ajax ×1
database ×1
jinja2 ×1
json ×1
md5 ×1
registration ×1
salt-stack ×1
sha1 ×1
sha256 ×1