【问题标题】:Want to know sha512 is safe if i mix it with md5 [closed]如果我将它与 md5 混合,想知道 sha512 是安全的 [关闭]
【发布时间】:2013-05-29 17:31:50
【问题描述】:

我需要检查一下我的代码是否安全

$pass = "jitubond";
$hashed_password =  md5($pass);
echo $hashed_password; // this is unsafe 100%
echo "<br>";
$hashed = hash("sha512", $pass); // style 1 
echo $hashed;
echo "<br>";
$hashed = hash("sha512", $hashed_password); // style 2 
echo $hashed;

你能指导一下它可以用作密码吗?

谢谢大家=)

【问题讨论】:

标签: php


【解决方案1】:

使用crypt()也更安全,你还可以定义轮数和盐(你真的应该使用盐),这也是 PHP 核心的一部分

http://php.net/manual/en/function.crypt.php

https://stackoverflow.com/a/10281510/753676

你也不能依赖hash(),因为它不是 PHP 核心的一部分 http://php.net/manual/en/faq.passwords.php

PHPass 也是一个很好的选择: https://security.stackexchange.com/questions/17111/php-crypt-or-phpass-for-storing-passwords

一些例子: http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/

http://www.openwall.com/phpass/

Blowfish/bcrypt 也被认为是最安全的算法(但可能会占用过多的 CPU),您可以设置一些参数,例如成本系数 ...

有些服务器还安装了 php 和 mcrypt 库,它还支持更多类似 TwoFish、TreeFish 等 http://www.php.net/manual/en/intro.mcrypt.php 但这可能太多了

【讨论】:

    【解决方案2】:

    sha512 是一个非常好用的算法,先用 md5 有点大材小用,直接用 sha512 就好了。

    【讨论】:

    • 所以 style 1 是安全的吗?
    • 这是更安全的方法之一,是的:),但它总是更安全。
    • 不如crypt 多轮安全,多次加密密码(如在 style2 中)更有意义,但使用相同的算法(仅 sha2)
    • 是的,自己设计一种风格就可以了。但是,您应该使用 password_compat 之类的东西,因为无论如何它将在 PHP 5.5 中使用,并且您可以使用它来确保您当前的密码方案安全。
    • 我建议您观看 Anthony Ferrara 的 brilliant presentation on password storage。 sha512 本身并不安全。
    猜你喜欢
    • 2019-01-14
    • 2012-05-20
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2014-04-27
    相关资源
    最近更新 更多