密码加密

Smi*_*ith 0 java database

我已在我的数据库中以加密格式存储用户密码.然而,现在,当用户想要登录,并试图把他们的原始密码的代码始终与存储在数据库中的加密版本的进入(原)密码,导致登录失败.

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

Jon*_*eet 8

您几乎肯定会使用哈希密码而不是使用可逆加密.您可能还需要使用 ...在这种情况下,正确的步骤是:

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

当您使用存储的 salt 时,请注意当您存储散列密码时,生成随机 salt以及验证存储的哈希时的差异.

  • 理想情况下,你应该做比SHA-256更好的事情.SHA-256足够安全,但它太快,无法阻止蛮力.使用多轮SHA-256(类似于1000次迭代)或使用PKDBF2或bcrypt(或者可能是scrypt,具体取决于您对算法的看法) (3认同)