【问题标题】:How to reverse hashed and salted password ? [closed]如何反转散列和加盐密码? [关闭]
【发布时间】:2013-12-24 11:34:32
【问题描述】:

我正在使用 vBulletin,登录使用它来交叉引用数据库。

md5(md5($pass).$salt)

我如何制作一个 PHP 脚本,以便每个密码输入都会自动进行散列和加盐处理,以便能够通过 vBulletin 数据库进行身份验证?

【问题讨论】:

  • 您可以将散列输入与数据库中的字段进行比较,而不是反转 md5()...不可能...我强烈建议您不要在密码损坏时使用 md5() ..破解并充满漏洞...

标签: php mysql vbulletin


【解决方案1】:

由于散列不加密,因此无法反转散列。

如果你想能够反转密码,你必须使用加密功能。

【讨论】:

    【解决方案2】:

    如何反转散列和加盐密码?

    散列是一种单向过程。即,如果你传递一个字符串,你会得到一个无法反转的哈希值。它可以用于比较目的。

    一些散列算法是md5()[不被认为是安全的]、sha-1sha-256

    目前最好的哈希...

    利用crypt() 加上一些强盐。如果你有 PHP 5.5 ,那么你可以很好地使用password_hash()

    【讨论】:

    • 那我应该怎么做才能让输入的密码也被散列和加盐?
    • 在输入中应用你刚才提到的散列算法...
    【解决方案3】:

    只需使用您发布的代码。获取表单数据并将其包装在相应的 md5() 函数中。

    【讨论】:

    • 可以说我的密码是 $password 。怎么包起来?对不起,我是新人。
    • @user3132112 只是为了澄清您这样做是为了比较两个密码哈希?仅供参考,您无法反转哈希以获取纯密码。无论如何,您只需像在上面的帖子中那样使用与 vBulletin 论坛相同的 $salt 值来执行 md5(md5($password).$salt) 。将结果与散列的 vBulletin 密码进行比较,您将能够验证它们是否相同。
    • 是的。如果我当前的代码是 $password=$_POST['password'];我如何将 md5(md5($password).$salt 应用到其中?
    • @user3132112 正是这样。不过,您需要知道正确的 $salt 值。您可以只使用 md5($password) 作为演示如何对密码进行哈希处理,但如果 vBulletin 使用特定的盐值,那么如果您希望比较密码,则需要它。