【问题标题】:Uncrypt and decrypt password解密和解密密码
【发布时间】:2013-01-29 21:27:44
【问题描述】:

我有一个人们可以登录的框架,我还有一个管理员可以添加用户(员工)的框架。我知道如何在使用 MD5 哈希添加用户时加密密码(在 jPasswordField 中给出)等等。但我不知道如何解密它。我今天用谷歌搜索了我的眼睛,但没有找到解决方案。

(为了保持这个线程井井有条,我已将代码发布在代码粘贴项中)。

登录框架: http://codepaste.net/j6imgd

添加框架: http://codepaste.net/v4744v

如果有人可以帮助我,将不胜感激。

【问题讨论】:

    标签: jpasswordfield


    【解决方案1】:

    像 MD5 这样的哈希(我希望你没有使用普通的 MD5 来存储密码)是单向的。

    您要做的只是将用户密码的哈希值与他们输入的内容进行比较。

    如果用户的密码是“kitten”并且 - 暂时让我们假设您正在使用不安全的 MD5 - 您已将其哈希值“6da89cd09ab7937478a1d47d20938536”存储在您的用户数据库中,您只需需要检查用户在登录时输入的密码的哈希值是否匹配。

    【讨论】:

    • 感谢您的回复。那么,如果我理解正确,MD5 哈希很容易解密吗?是不是也能轻松识别MD5哈希?
    • 你不能轻易地反转一个 MD5 密码(你不应该使用 MD5)你需要创建一个彩虹表来检查。您还想做的是在密码中添加盐以使其更安全。 MD5 的问题是存在已知的冲突。请查看我的答案以获得更好的描述和链接。
    【解决方案2】:

    实际上 MD5 是一种单向加密。如果要使密码可解密,则应使用其他算法进行加密和解密。

    【讨论】:

      【解决方案3】:

      作为哈希,不要使用 MD5。 MD5 已被破坏,如果攻击者掌握了您的哈希值,他将能够计算出明文密码是什么。有一些技术可以使普通哈希算法更安全(例如使用盐),但 MD5 实在是太糟糕了。

      所以是的,请使用哈希,这是一种单向加密(即您无法解密)密码。您不需要解密它们,因为如果用户输入正确的密码,它将产生相同的哈希值。

      这是一个question,它讨论了 MD5 的替代方案。

      【讨论】:

        【解决方案4】:

        这可能对你有帮助:How to build a login system.

        您要做的是对用户密码进行哈希处理,将其存储在数据库中,然后当用户登录时,您对他们输入的密码进行哈希处理,并将其与存储在数据库中的密码进行比较。如果它们匹配,则密码相同。请注意,您不应该使用 MD5 考虑使用带有盐的 SHA 512,如上面的链接所示,这是我使用的,这是一个非常有用的描述。

        【讨论】:

          猜你喜欢
          • 2012-10-03
          • 2015-02-10
          • 2016-08-08
          • 1970-01-01
          • 1970-01-01
          • 2017-04-01
          • 2016-12-08
          • 2019-05-04
          相关资源
          最近更新 更多