难道这个密码存储方法安全吗?

我只是想,如果通过使用密码本身是安全的使用创造了一个盐创建密码哈希值。 在这里,在PHP的一个例子:

<?php $pass = $_GET['pass']; $salt = hash('whirlpool', $pass); $pass = md5(hash('whirlpool', $salt.$pass)); echo $pass; ?>

这是否有意义?

问候。

--------------解决方案-------------

盐的点是让每个人的密码是唯一的。 因此,在这种情况下,只是哈希密码,并把它加为盐会仍然让2用户的最终哈希密码相等时,给出相同的原始密码。 更好的给每个用户随机盐和存储其在数据库密码旁边的权利。

它没有必要哈希并重新散列和重新再散列密码。

使用的盐具有良好的哈希码算法是个好东西,但你需要强制你的用户以最小的尺寸,用字母数字字符发送一个强烈密码

笔记:

  • 使用SHA1比MD5更好。
  • 使用好的盐(感谢@约翰巴塞洛缪)
  • 强制你的用户创建一个强密码

我不喜欢这样

<?php

$my_key = "myapp";
$temp_pwd = htmlentities(trim($_POST['password']));
$hashed = sha1($my_key.$temp_pwd);

save $hashed in database on signup
and with every login attemp merge the input password value with your key and make a hash of it and than compare with database password value

?>

您可以同时保护您的密码和盐。

  1. 使用SHA256或更高(2012年),并在今后几年里,必须更高。
  2. 使用不同的盐为每一位用户。
  3. 使用计算盐。
  4. 创建一个16到32字节盐,并将其存储在数据库中,被称为“DBSalt'。
  5. 创建任何旧的算法来操纵盐,但保留算法只在代码中。 因为如果有人得到你的数据库,他们实际上并没有正确的盐,因为盐正确计算甚至一些如DBSalt + 1那样简单是非常有用的。
  6. 计算你的密码,如下所示:

    CreateHash(saltAlgorithm(dbSalt),密码);
  7. 您可以通过具有操纵的DBSalt方式不同算法列表添加安全。 每一个用户更改其密码时,你也可以使用不同的计算对DBSalt
  8. 您可以通过所以如果你的数据库和代码都得到砍死,他们依然没有你的盐有这些算法存储外部系统的Web服务器上添加更多的安全。
    1. 您也可以通过之前有一个提高安全性,之后,或两者盐和数据库本身并不能提供此信息。

有没有结束“你可以通过增加安全性......”征求意见。 只是要记住,每次添加的安全性的时候,你增加了复杂性,成本等...

如何有效盐的口令存储在一个数据库中的哈希

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP,安全,密码哈希
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.752 (s). 10 q(s)