4

我现在正在尝试使用 PBKDF2 作为我的密码,我突然意识到,如果我将来升级到更快的机器,我会想要增加 PBKDF2 迭代的次数。但是,这会使我存储的所有当前密码无效。我看到的一个想法是将 PBKDF2 设置与密码(类似于存储 salt 的方式)一起存储,例如在哈希创建时使用的迭代计数和 PRF(SHA-256、SHA-512) . 就向后兼容性而言,这听起来是个好主意,但我想知道这样做是否有任何缺点。对此的任何见解将不胜感激。

4

1 回答 1

5

你肯定在这里采取了正确的方向。许多系统只存储盐,但执行 PBKDF2 所需的其余参数在哪里?硬编码!加密函数的硬编码参数几乎从来都不是一个好主意。

我看到的唯一缺点是,当您存储所有参数时,您的数据库可能会占用更多空间,但您未来的升级将更加容易和直接。

BTW RFC 2898定义了称为PBKDF2-paramsPBKDF2 算法的所有公共参数的数据持有者的结构。至少将其用作灵感,这样您就不会忘记任何重要参数。

于 2014-08-20T06:07:39.197 回答