我正处于开发阶段,我需要测试我的登录名/密码api。
问题在于数据库密码已加密。
我有以下信息。
这足以恢复密码吗?
顺便说一下,如果这样做有帮助,我也可以编辑这些值。
答案 0 :(得分:3)
我认为您误解了密码API的工作原理。您无法撤消正确的哈希密码,但可以根据存储的哈希验证输入的密码。
要验证输入的密码,您需要再次计算哈希值,并使用与创建第一个哈希值相同的参数。然后你可以比较两个哈希,如果匹配,密码是相同的。
答案 1 :(得分:1)
您无法撤消PBKDF2,但您可以强制使用常用密码以查看是否有任何匹配。如果每次都使用随机盐,那么您将需要单独为每个密码执行此操作。如果使用大的迭代计数,那么准备它需要很长时间。
答案 2 :(得分:0)
首先,你应该重置它。
其次,当且仅当密码较弱时才能恢复(假设正确实施了PBKDF2),并且您知道它使用了哪个HMAC(可能是PBKDF2-HMAC-SHA-1 - 使用已知密码进行测试),或者你愿意花时间尝试几个并希望。
尝试使用专为密码破解而设计的oclHashcat工具 - note PBKDF2 generic at the end of the list of examples,最好使用一个或多个优质GPU。
或者,如果您只是测试密码API,则可以在my Github repository处运行测试向量,看看您的结果是否正确。