我有一个人们可以登录的框架,我有另一个框架,管理员可以添加用户(员工)。我知道如何在使用MD5哈希添加用户时加密密码(在jPasswordField中给出),但是我不知道如何解密它。我今天用Google搜索了我的眼睛,但没有找到解决方案。
(为了保持这个线程的有序性,我已将代码发布到codepaste项目中。)
登录框: http://codepaste.net/j6imgd
ADDFRAME: http://codepaste.net/v4744v
如果有人可以帮助我,我们将不胜感激。
答案 0 :(得分:0)
MD5等哈希(我希望您不使用普通MD5进行密码存储)是单向的。
您要做的是简单地将用户密码的哈希值与他们输入的密码进行比较。
如果用户的密码是“小猫”并且 - 暂时让我们想象你正在使用MD5,这是不安全的 - 你已经在你的用户数据库中存储了它的哈希,“6da89cd09ab7937478a1d47d20938536”,你只需要需要检查用户在登录时输入的密码是否匹配。
答案 1 :(得分:0)
实际上MD5是单向加密。如果要使密码可解密,则应使用其他算法进行加密和解密。
答案 2 :(得分:0)
作为哈希,不要使用MD5。 MD5已被破坏,如果攻击者抓住你的哈希,他将能够找出明文密码是什么。有一些技术可以使普通哈希算法更安全(例如使用salt),但MD5对此来说太过分了。
所以是的,使用哈希,这是一种单向加密(即你不能解密它)的密码。您不需要解密它们,因为如果用户输入正确的密码,它将产生相同的哈希值。
这是讨论MD5替代品的question。
答案 3 :(得分:0)
这可能会对您有所帮助:How to build a login system.
您要做的是对用户密码进行哈希处理,将其存储在数据库中,然后当用户登录时,您将输入的密码哈希并将其与存储在数据库中的密码进行比较。如果匹配密码是相同的。请注意,您不应该使用MD5考虑使用带有盐的SHA 512,如上面的链接所示,这是我使用的,这是一个非常有用的描述。