What way is the best way to hash a password?
本问题已经有最佳答案,请猛点这里访问。
我在一个对用户来说应该非常安全的网站上工作,所以我需要散列密码。通常我使用的是MD5,但我读到它不再安全。所以我试过phpass,但后来我发现它也被破解了。所以我尝试了使用php 5.5的
散列强度对我来说非常重要,因为我想100%地确保我的用户是安全的。那么,有没有一种方法是非常安全的,而不是像sha这样的东西很快就会被黑客攻击?
使用这个库,提供前向兼容的
使用的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 | require_once("password.php"); // imports the library, assuming it's in the same directory as the current script $password ="HelloStackOverflow"; // example password $hash = password_hash($password, PASSWORD_BCRYPT); // here's the hash of the previous password $hash = password_hash($password, PASSWORD_BCRYPT, array("cost" => 10)); // you can set the"complexity" of the hashing algorithm, it uses more CPU power but it'll be harder to crack, even though the default is already good enough if (password_verify($password, $hash)) { // checking if a password is valid /* Valid */ } else { /* Invalid */ } |
PHP是一个内置的哈希算法,如MD5,SHA1等。然而,从安全的角度来看,它是建议使用这些功能可以轻松地为他们的哈希密码暴力破解工具,通过使用破碎样passwordpro攻击。
它的更好,如果你用你的方式来salting作为一个安全的密码。下面是一个例子:
1 2 3 |
甚至更好,在单向散列生成的盐是由它的第一。
这种方式的优势是,它是一个盐值的随机变化,每个密码,使它几乎不可能打破。
这是最好的事情我认为是图书馆管理使用的密码。如果你无法使用这个库,你可以尝试PHP 5.5是作品的php5.3 +,看看在这项目:
rchouinard.github.io http:/ / / / phpass
采取一看http://net/手册/德/ function.crypt.php
你应该考虑使用的盐,以防止彩虹表攻击在这里你可以找到一个教程:http://///425 www.yiiframework.com维基使用密码的密码存储/