我们正在迁移一家公司,我们从该领域收购了大量的kiosk硬件资产。由于公司遭受了损失,我们在没有任何实现文档的情况下迁移位置、指纹、用户名和密码时遇到了一些问题。幸运的是,大多数使用的密码是数字4-6 PIN或一个常用的单词.我一直在努力找出密码的格式,希望能够用字典对大多数密码进行解密。我有以下格式:
"password": "ce62f0002776890507c4050a3b76c064d3d24328aea52a08633b726d352532dc",
"salt": "JUQLSPOYGFURMGSDRYWIWBIWP",
上面的密码是“”。希望这有助于找到格式。
发布于 2016-07-02 21:11:33
如果它是一个哈希,看起来像一个哈希,可能是HMAC- the 256从长度,您需要运行一个密码破解程序。你应该能够恢复超过90%,但很可能不是全部。
在我的笔记本电脑上,我可以通过SHA-512运行一个20字节的密码,并在1U以下进行比较,因此,只要使用一个SHA-512哈希,我就可以每秒尝试1,000,000个密码。
您可以列出一个列表来检查,但是已经有了很好的列表,请参阅下面。
有关更多信息,请参见:
密码列表在SecLists。
Infosec 密码破解工具
Arstechnica 我是如何成为密码破解者的.
发布于 2016-07-02 21:31:38
您可以在新代码中实现旧的散列方法。当密码匹配(即合作伙伴发送的密码)时,您可以将其存储在新格式中(必要时接受这两种格式)。这样就省去了破解现有密码的需要。
要做到这一点,您确实需要知道密码是如何被散列的,以及使用了什么格式,lucikly,这似乎相当容易(Java示例):
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bos.write("password".getBytes(StandardCharsets.US_ASCII));
bos.write("JUQLSPOYGFURMGSDRYWIWBIWP".getBytes(StandardCharsets.US_ASCII));
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] out = md.digest(bos.toByteArray());
System.out.println("hex = " + new HexBinaryAdapter().marshal(out).toLowerCase());
生成(即级联密码字节和salt字节,非迭代计算SHA256并将其转换为十六进制)所需的散列:
hex = ce62f0002776890507c4050a3b76c064d3d24328aea52a08633b726d352532dc
https://stackoverflow.com/questions/38164359
复制相似问题