解密rfc2898密码

Decrypting rfc2898 password

我正在开发中,我需要测试我的 login/password api。

问题是数据库密码被加密了。

我有以下信息。

这足以恢复密码吗?

顺便说一句,如果有帮助的话,我也可以编辑这些值。

您无法逆向 PBKDF2,但您可以暴力破解常用密码以查看它们是否匹配。如果每次都使用随机盐,那么您将需要为每个密码单独执行此操作。如果使用大量迭代计数,则准备好花费很长时间。

我想你误解了密码 API 的工作原理。您无法反转正确散列的密码,但您可以根据存储的散列验证输入的密码。

要验证输入的密码,您需要再次计算哈希值,使用与创建第一个哈希值时相同的参数。然后你可以比较两个哈希值,如果它们匹配,密码是相同的。

首先,您应该重置它。

其次,当且仅当密码很弱(假设正确实施了 PBKDF2),并且您知道它使用了哪个 HMAC(可能是 PBKDF2-HMAC-SHA-1 - 使用已知密码进行测试)时,您才能恢复它), 或者你愿意花时间尝试几个并希望。

尝试使用像 oclHashcat that's designed for password cracking - note PBKDF2 generic at the end of the list of examples 这样的工具,最好使用一个或多个好的 GPU。

或者,如果您只是测试您的密码 API,您可以 运行 my Github repository 处的测试向量通过它,看看您的结果是否正确。