【发布时间】:2014-11-20 22:35:17
【问题描述】:
所以我正在尝试解决这个问题。我应该获得由散列函数散列的电子邮件地址。
秘密电子邮件地址在下面散列:
092b41aa59dacb2124f5a04464bcd13297f6a09d69e6eabf1be7bef3ef86402d1b023677b38763b3cfae5c3ba71ba6cfe38526cf77e267373be8be893b1939af897c87302750d35f175f9664896ff78d9969ce2a72c3f1b5c439b7a952c557c2097332ecc01f50b12593826ba0872d24cd3c21dca4e1859a97ca4394b2544ef53df1f35cbb68b6a1e526df4e669920ba18c5c845aaee2f9d5b0b2c72b15d2296f0a42e4e37042713855c4cb84ca738bcbc151c84fe6448fca60efb64393c8b974d6ae3ab53c0cecdb11fc8a0e0e8864218ba49cb972bd76759290caf3a1851ca30cfbc46ff3137b342a28a159d9a483576e1ed3840f2d287b8cf74fafe2269cf7716d553f11eccce6fcd1b9e411789d989d97a2d95b4ac0aa6e92b512b923fa13e85ce24a5ee8527656b43a4f9b3817c9f67aa18966d70bc10e07ca19dd0cf6af5ca15876ee1d21d3afc8ba1524c6239a77184c0a84557c672230a38f41c8a1166425785a37cc2ac841d32c5558b38cd5c38c53551c5002815c71a4c4c4420fb945dc02cbb80e1c99b6b73c3d03318af914a26f7b760c299e3748f930febb97d7f8333ba0c29732ebdbe7ef9a181d7747986a7b6040a6b1165084a477f14643b P>首先,我们生成了一系列带长度的字符串前缀 增加 2。例如,如果我们的秘密电子邮件地址是 helloworld@company.com,我们会生成:
he
hell
hellow
hellowor
... helloworld@company.com然后,对于每个前缀 s,我们计算了以下哈希 J:md5(md5(e) + s + md5(s)) [其中 + 是字符串连接运算符,e 是您的电子邮件地址]。最后,我们将所有哈希字符串 J 连接到 形成上面的长哈希!
例如,对于 helloworld@company.com,我们将计算:
md5(md5('myemail@gmail.com') + '他' + md5('he')) +
md5(md5('myemail@gmail.com') + 'hell' + md5('hell')) +
md5(md5('myemail@gmail.com') + 'hellow' + md5('hellow')) +
...为简单起见,您可以假设我们的电子邮件地址仅 包含字母数字字符和这 4 个字符:_.@+
我不熟悉这种问题。如果你能给我一个大概的想法,我应该做什么(一个游戏计划),那将有很大的帮助。可以安全地假设我对散列(或相关的数据结构)知之甚少。这个问题将是我学习这些东西的好机会。
【问题讨论】:
-
要解密
md5吗? (如果我错了,请纠正我) -
从问题陈述来看,是这样的。我意识到 MD5 无法解密。 (哈希是一种方式)但由于有更多信息——比如生成长度增加 2 的字符串前缀,我的电子邮件地址——这可能是可能的。
-
这个谜题是哪里来的?我很确定我已经在某处读过它。
-
暴力破解MD5,步长为两个字符,这真的是面试时编造的问题不是吗?
标签: javascript encryption hash md5