当前位置: 首页 > 知识库问答 >
问题:

取消使用pbkdf2散列的密码

郑晗日
2023-03-14

我正在使用pbkdf2算法来散列密码。为每个密码生成一个随机salt,并设置迭代次数,以使计算持续约1秒。

我也在sambe缓冲区中保存盐和哈希:

   -----------------------
   | SaltLen |     4     |
   -----------------------
   | Salt    | saltBytes |
   -----------------------
   | HashLen |     4     |
   -----------------------
   | Salt    | hashBytes |
   - ---------------------

我的问题是,这个散列密码没有链接到一个用户(一个用户可以有多个密码),我需要有可能取消密码只使用密码本身。我看到的唯一方法是将密码散列到数据库中的每一个salt中取消,直到找到相同的散列,这将花费永远的时间(每一个salt 1秒)。

还有更好的方法吗?

共有1个答案

祖翰音
2023-03-14

将许可证视为密码是没有意义的。

PBKDF2

您不必散列它们,因为只有数据库中的许可证才被认为是有效的。它没有任何意义,黑客您的服务器和窃取他们。

要检查正确的许可证条目,您只需将许可证的数据库条目ID预先添加到许可证本身,并且您确切地知道要检查的条目。

 类似资料:
  • 我正在使用以下代码创建哈希密码和salt: 我正在数据库中存储HashedPassword和Salt。 现在我要验证用户登录时的密码: 这不起作用,我得到了一个完全不同的哈希密码,而不是存储在数据库中的密码。据我所知,您应该在用户登录时输入的密码之前预置salt,然后运行相同的哈希密码函数。上面不是等价于那个吗?

  • 我试图学习密码学,用散列和盐析在数据库中保存密码,所以我决定做一个登录系统来实现这个系统。 我的数据库包括 UserID int PK 用户名varchar(250) Salt varbinary(64) 密码varbinary(64) RegDate日期时间 电子邮件varchar(250) 我正在使用PBKDF2,但似乎这不是散列/盐析方法,如果不是呢? 如果是这样,我做得对吗? 我的钥匙 将

  • 问题内容: 有没有一种方法可以解密Java中的密码。Java将算法实现为。我得到了创建密码哈希的代码。我在下面提到了哈希技术的链接: http://howtodoinjava.com/security/how-to-generate-secure-password-hash- md5-sha-pbkdf2-bcrypt-examples/ 我的要求是以加密格式存储第三方FTP服务器密码,并在需要登

  • 我正在研究一个已经用MD5(没有salt)散列用户密码的系统。我想使用SHA-512和SALT更安全地存储密码。 虽然这对于将来的密码来说很容易实现,但我也想修改现有的MD5散列密码,最好不强迫所有用户更改他们的密码。我的想法是只使用SHA-512和一个适当的salt来散列现有的MD5散列。然后,我可以在数据库中设置一些标志,指示哪些密码是从纯文本散列出来的,哪些密码是从MD5散列出来的。或者我可

  • 问题内容: 我在由.NET生成的数据库中存储SHA256用户密码哈希,我需要能够使用Node.js进行检查。唯一的问题是.NET和Node.js为相同的密码创建不同的哈希。 。净: Node.js(使用加密): 我找到了,但是无法弄清楚如何实施他的解决方案。 问题答案: 编辑:您正在C#中使用UTF-16,必须在两种语言中使用相同的编码: Node.js: C#:

  • 尽管我有点困惑,我是否应该将salt输入到我的PBKDF2函数中,并将salt存储在一列中,而将PBKDF2的密码存储在另一列中。 我也在使用CodeIgniter,并找到了一个用于PBKDF2的库(https://github.com/hashemqolami/codeigniter-pbkdf2-library),它声称我不需要单独存储salt。 使用作为推荐的用户密码注册用户;无需单独存储用