使用指定的哈希函数解密哈希后的电子邮件地址
Decrypt email address hashed using specified hashing function
所以我正在努力解决这个问题。我应该获得散列函数散列后的电子邮件地址。
秘密电子邮件地址如下所示:
092b41aa59dacb2124f5a04464bcd13297f6a009d69e6eabf1be7bef3ef86402d1b023677b38763b3cfae5c3ba71ba6cfe38526cf77e267373 be8be893b1939f897c87302750d35f175f9664896ff78d9969ce2a72c3f1b5c439b7a952c557c2097332ec01f50b12593826ba0872d24cd3c21dca4e1859a97ca4394b2544f53df35cbb68b6a1526df4e669920ba18c5c845aaee2f9 d5b0b2c72b15d2296f0a42e47042713855c4cb84ca738bcbc151c84fe6448fca60efb64393c8b974d6ae3ab53c0ecdb11fc8a0e8864218ba49cb972bd76759290caf31851ca30cfb46ff3137b342a28a159d9a483576e1ed3840f287b8cf74fafe2269cf7716d553f11ccce6fcd1b9e411789d97a2d95b4ac0a6e92b512b923fa13e85ce24ee85227656b43a4f9b3817c9f67aaa18966d70bc10e07ca19dd0f6a15876ee21d3afc8a1524c6239a77184c0a84557c672230a38 f41c8a1166425785a37cc2ac841d32c5558b38cd5c38c53551c5002815c71a4c4c420fb945dc02cbb80e1c99b6b73c3d03318af914a26f7b760c299e3748f930febbb97d7f8333b0c29732ebdbe7ef9a181d7747986a7b6040a6b1165084a477f14643b首先,我们生成了一系列长度为的字符串前缀增加2。例如,如果我们的秘密电子邮件地址helloworld@company.com,我们会生成:
他
地狱
你好
好。。。helloworld@company.com然后,对于每个前缀s,我们计算以下散列J:md5(md5(e)+s+md5(s))[其中+是字符串串联运算符,e是您的电子邮件地址]。最后,我们将所有散列字符串J连接到形成上面的长散列!
例如,对于helloworld@company.com,我们将计算:
md5(md5('myemail@gmail.com')+'he'+md5('he'))+
md5(md5('myemail@gmail.com')+'hell'+md5('hell'))+
md5(md5('myemail@gmail.com')+你好+md5(你好)+
…为了简单起见,您可以假设我们的电子邮件地址包含字母数字字符,这4个字符:_.@+
我不熟悉这种问题。如果你能给我一个大致的想法(一个游戏计划),那将是非常有帮助的。可以肯定的是,我对哈希(或相关的数据结构)了解不多。这个问题将是我学习这些东西的好机会。
只要e是已知的,就可以很容易地伪造碰撞,这很可能是原始的。。。
md5具有128位输出。。。所以把你的长字符串分成单独的md5十六进制字符串
现在,如果e是已知的,那么对于第一个散列,您只需要猜测2个字符。。。穷举搜索将是总共[a-z0-9_.@+]^2=40 ^2=1600个可能的候选者。。。
一旦发生冲突,您就会"知道"秘密的前2个字符。。。
对于下一个散列,您只需要猜测s的下两个字符,因为前两个字符在步骤1。。。
按照大字符串J中出现的顺序,对所有哈希重复此操作。。。由于每个哈希只需要猜测2个字符,并且可以重用上一个哈希的冲突信息,所以这很容易。。。
就复杂性而言,e的md5散列只需要计算一次,并且每个猜测有2个连接和2个md5计算。。。每个哈希你有一个1600的不可靠的搜索候选池,因此平均而言,你可以说你需要在J 中对每个哈希进行800次猜测
请记住,这不是谴责。。。它仍然在寻找碰撞。。。但最有可能的是原始数据,因为md5很可能(人们几乎可以肯定地说)对于可能的输入是无冲突的。。。
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 如何在浏览器重新加载时保存位置哈希状态
- jQuery scrollTop-哈希错误
- 动态添加哈希标记;t工作
- 在Javascript中实现对哈希值的暴力攻击
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 可以在React Native中制作一个自哈希应用程序
- 重定向不带哈希的URL-Ember.JS
- 正在测试主干事件哈希
- JavaScript对象作为哈希?复杂性是否大于O(1)
- 如何在JavaScript中实现哈希表
- 如何根据传入的哈希标签发送PHP请求
- 在我的图库(jQuery)中使用箭头导航时,更改URL中的哈希
- 哈希被推到猫鼬模型上作为'[对象对象]”;
- 使用指定的哈希函数解密哈希后的电子邮件地址
- 如何解密哈希码?解码也是一样吗?