密码加密

时间:2011-03-16 07:09:06

标签: java database

我已在我的数据库中以加密格式存储用户密码。但是,现在当用户想要登录并尝试输入原始密码时,代码始终会将输入的(原始)密码与存储在数据库中的加密版本进行比较,从而导致登录失败。

请告诉我如何将输入的(原始)密码与存储在数据库中的加密密码进行比较。

6 个答案:

答案 0 :(得分:8)

您几乎肯定应该是hashing密码,而不是使用可逆加密。您可能需要使用salt执行此操作...在这种情况下,正确的步骤是:

  • 找到最初散列密码时使用的盐(通常使用散列密码存储)。
  • 使用该盐对用户输入的密码进行哈希处理。
  • 比较两个哈希值 - 如果它们相等,则用户(几乎可以肯定)输入正确的密码。

注意存储散列密码的时间,生成随机盐的时间,以及验证存储的散列时,使用存储的之间的区别 salt。

答案 1 :(得分:3)

不要加密密码!只需将其哈希(MD5 / SHA1 / bcrypt)并保存您与之比较的哈希值,即用户输入的每个密码的哈希值。

答案 2 :(得分:1)

您需要加密输入的密码,然后将加密的输入密码与加密的存储密码进行比较。

答案 3 :(得分:1)

显然,它失败了。每次要对数据库进行验证时,都必须加密原始密码。

答案 4 :(得分:0)

如果您需要动态创建java密码,则每次动态生成密码

链接,

http://brigitzblog.blogspot.com/2011/11/java-dynamic-password-generation.html

答案 5 :(得分:-1)

您需要解密存储的密码并检查输入的密码是否相等。