【问题标题】:Getting MD5 codes from database and decoding it in PHP [duplicate]从数据库中获取 MD5 代码并在 PHP 中解码 [重复]
【发布时间】:2011-08-17 08:16:32
【问题描述】:

可能的重复:
I Have md5 encrypted password, how to give the password to user when he uses “Forgot password”?
PHP:How to send the original password to the user when he clicks forgot password which is encrypted by using md5?

我不知道问这个问题是否正确,但我正在用 PHP 实现我自己的会员脚本,现在,我被困在从数据库中检索 MD5 代码的问题上。好的,我将用户信息插入数据库,由于安全问题,我在将密码保存到数据库之前对其进行了加密,但我的问题是,当我尝试创建忘记密码的东西时,如何从数据库。顺便说一句,我使用 MySQL,我的问题不是关于从数据库中插入或检索数据,我只问我如何才能扭转 MD5 的事情。提前致谢!

【问题讨论】:

  • 你没有。您重置了忘记密码的密码。
  • Encryption 是为了 decryption 就像 hash 是为了……什么? ;-)
  • hash 是为了...比较另一个哈希值,我猜这是我能想到的最好的了
  • @Ibrahim 重点是没有 "dehash"。 :)

标签: php mysql md5


【解决方案1】:

你不能。 MD5 散列,或一般的 散列,是不可逆的。这正是您首先使用它们来存储密码的原因,因为您不想承担知道实际密码的责任

忘记密码功能是通过向用户发送一封电子邮件来实现的,其中包含他必须单击的一次性链接并让他输入新密码。

【讨论】:

  • 这是最好的方法。附带说明一下,如果密码长度小于 8 个字符,则应该对 md5 散列进行加盐,因为解码较短的 md5 散列变得更加容易。
  • @user 无论如何,您都需要对您的密码进行加盐处理,而不仅仅是密码太短。另外,你不应该再使用 MD5。
  • 你为什么要给你的密码加盐?为什么我不能再使用 MD5?
  • @Jay 阅读这篇出色的文章@Tim 链接到:chargen.matasano.com/chargen/2007/9/7/…
【解决方案2】:

MD5 原本是单向的,但它现在完全不安全。如果您真的认真对待任何安全措施,而不仅仅是通过动作,那么您需要阅读:

http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html

SHA512 vs. Blowfish and Bcrypt

http://codahale.com/how-to-safely-store-a-password/

【讨论】:

    【解决方案3】:

    实际上,您再也无法找回密码了,

    您将输入的密码散列并与数据库中的密码进行比较,这就是它的工作原理:) 祝你好运

    【讨论】:

    • 如果它们匹配,那么您的密码正确。 md5 是不可逆的,这意味着它是单程票,因此即使有人掌握了您的哈希值,也很难知道密码是什么
    【解决方案4】:

    MD5 是一种单向哈希,因此将其反转是行不通的。

    你如何做到这一点是与存储的内容进行比较,例如: 输入用户的SQL:

    INSERT INTO `users` (`username`, `password`) VALUES ('$username', MD5('$password'));
    

    这意味着密码存储为哈希。 当有人试图登录时,你做同样的事情,但在一个 select 语句中:

    SELECT * FROM `users` WHERE `username` = '$username' AND `password` = MD5('$password');
    

    如果有结果,则用户已通过身份验证,如果有超过 1 个结果,那么您很开心 :)

    对于忘记密码位,您最好设置一个链,通过电子邮件向用户发送代码和链接。他们可以在“密码重置”页面上输入该代码以及新密码。

    HTH

    【讨论】:

      【解决方案5】:

      有多种方法可以处理忘记的密码,但从 MD5 哈希中找出原始密码并不是其中之一。

      然而,为了记录,您真的不应该为此使用 MD5(或其他任何与安全相关的东西)。 MD5 相当严重损坏 -- 除非在这件事上绝对别无选择,换成别的东西(哦,但你也应该知道 SHA-1 只是一点点优于 MD5)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-14
        • 1970-01-01
        • 1970-01-01
        • 2014-10-17
        • 1970-01-01
        相关资源
        最近更新 更多