【发布时间】:2014-10-22 19:18:51
【问题描述】:
首先,我们生成了一系列长度增加 2 的字符串前缀。例如,如果我们的秘密电子邮件地址是 helloworld@company.com,我们将生成:
他
地狱
你好
你好
...
helloworld@company.com
然后,对于每个前缀 s,我们计算了以下哈希 J:
md5(md5(e) + s + md5(s)) [其中 + 是字符串连接运算符,e=xyz@gmail.com 是您的电子邮件地址(当然知道!)]。
最后,我们将所有哈希字符串 J 连接起来形成上面的长哈希!
例如,对于 helloworld@ company.com,
我们会计算:
md5(md5(' xyz@gmail.com') + 'he' + md5('he')) +
md5(md5(' xyz@gmail.com') + 'hell' + md5('hell')) +
md5(md5(' xyz@gmail.com') + 'hellow' + md5('hellow')) +
...
为简单起见,您可以假设我们的电子邮件地址仅包含字母数字字符和这 4 个字符:_.@+
长哈希:
2ae5a25bbd70c46840c5ea35a178f655157d58b7c8d32f80889a2e61d84b19ca87a7f68bec10d70e7a321adf4bdbdcec77e44f4d3b435a6cc8caf20f8a2a7120c7c3e03a04e74edd6e85faa462ef61aa5555c7ae83c01e33f3619223c3d8cc920d3566a5bf47133af8b98a5186aab07be340a1149d7fedb8d266bf6de496719c44e0763bd5b65b877bac8d2a5255e2323082c5daa4a803554489ef738b1c2ac90b30947945114890567153736ec15f902f2eae9e754c747fe4bde0f6ed75711ca0a88703a6dee42fa56abbed9aded7644adbb3cc52207eba9b0419970300dae36e6e1422037295830f2e05f625b6b8c260007e2301821d1d47072693fcac2f8a3f07e29a9278ff2151454131d3b1024b52f646505ad66e1dce11cf641ab439c05a5f8e3a645383088a5adfa6e9a3e683f124157674cb75300e8b63c74c06e82c7dbe4cc728046a530f5da189ef0005d1b66520bc3591685430960225603f42d4486d4d1def5154c5038da072a492a619f10340b1dbafc7c25316832ce69b8aca882a7ed74540b64e281cd3f1ae4d1f8d19b10713ec3da2932e4b603988492e12765ff45947e6e02abc4677690b182bbfdfbd678a33a3ea6eb66d49d8e6417f82
另外,假设我们知道域“@company.com”。如何找出上述给定条件的电子邮件地址?
【问题讨论】:
-
在这种情况下,您会尝试恢复哪个电子邮件地址?用于连接的秘密或称为“e”的秘密?
-
保密一个电子邮件地址
-
你认为那是什么面具?
-
是什么让你这么认为?它表示公司的电子邮件地址已拆分为“他”,您应用给定的 md5 条件。现在将另外两个字符附加到“他”,它变为“helo”。再次在此字符串上应用给定的 md5 条件。继续该过程直到公司的电子邮件地址结束。长哈希是在连接您获得的所有哈希后生成的。
标签: encryption hash md5