解密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 处的测试向量通过它,看看您的结果是否正确。
我正在开发中,我需要测试我的 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 处的测试向量通过它,看看您的结果是否正确。