Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解密使用指定哈希函数哈希的电子邮件地址_Javascript_Encryption_Hash_Md5 - Fatal编程技术网

Javascript 解密使用指定哈希函数哈希的电子邮件地址

Javascript 解密使用指定哈希函数哈希的电子邮件地址,javascript,encryption,hash,md5,Javascript,Encryption,Hash,Md5,所以我正在努力解决这个问题。我应该获得通过哈希函数哈希的电子邮件地址 秘密电子邮件地址散列如下: 092B41AA59DACB2124F5A04464BCD13297F6A09D69E6EABF7EF3EF86402D1B023677B38763B3CFAE5B3BA71BA6CFE38526CF77E267373BE8BE893BE3B1939AF897C87302750D35F175F9664896FF78D996CE2A72C3F1B539B7A952C557C2097332EC01F50

所以我正在努力解决这个问题。我应该获得通过哈希函数哈希的电子邮件地址

秘密电子邮件地址散列如下:

092B41AA59DACB2124F5A04464BCD13297F6A09D69E6EABF7EF3EF86402D1B023677B38763B3CFAE5B3BA71BA6CFE38526CF77E267373BE8BE893BE3B1939AF897C87302750D35F175F9664896FF78D996CE2A72C3F1B539B7A952C557C2097332EC01F50B12593826BA087CD3C21DCA4E1859CA43944EF535F535B75F9664896FF78D9CE2BF725CFB1727CF427CFB1427CFB1427B727B727CF427B727B727CF427B727CFB17CFB17B727CF427B727B727CF427B727B727CF427B727B727CF427B7CFB17B7CF8 CBC18 8 C8 8 8 C8 8 C8 8 8 C8 8 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8F41C8A1166425785A37CC2AC841D32C558B38CD5C38C53551C550028C71A4C4420FB945DC02CBB80E1C99B6B73C3D03318AF914A26F7B760C299E3748F930FEBB97D7F8333BA0C2972EBD7EF9A181D7747986AB60A6B1165084A477F146B

首先,我们生成了一系列长度为的字符串前缀 增加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“)+”他“+md5(”他“)+
md5(md5('myemail@gmail.com“)+“地狱”+md5(“地狱”)+
md5(md5('myemail@gmail.com“)+”hellow“+md5('hellow'))+

为了简单起见,您可以假设我们的电子邮件地址 包含字母数字字符和以下4个字符:\@+



我不熟悉这种问题。如果你能给我一个大概的想法,我应该做什么(一个游戏计划),那将是非常有帮助的。可以安全地假设我对哈希(或相关数据结构)了解不多。这个问题对我来说是一个学习这些东西的好机会

只要知道e,就可以很容易地伪造碰撞,很可能是原始碰撞

md5有一个128位的输出。。。因此,将您的长字符串划分为单独的md5十六进制字符串

现在如果e已知,那么第一个散列只需猜测2个字符。。。彻底搜索将总共有[a-z0-9@+]^2=40^2=1600个可能的候选人

一旦发生碰撞,你“知道”秘密的前两个字符

对于下一个散列,您只需猜测接下来的2个字符,因为前两个字符已在步骤1中已知

按出现在大字符串J中的顺序对所有哈希重复此操作。。。由于每个哈希只需猜测2个字符,并且可以重用从上一个哈希中发现的冲突中获得的信息,所以这相当容易

就复杂性而言,e的md5散列只需要计算一次,并且每个猜测有2个concatation和2个md5计算。。。每个散列你有一个1600的exaustive搜索候选池,所以平均来说,你可以说在J中每个散列需要800次猜测


请记住,这并不是一件坏事。。。这仍然是一个碰撞的搜索。。。但最有可能的是原始数据,因为md5很可能(几乎可以说是肯定的)对于可能的输入是无冲突的…

是否要解密
md5
?(如果我错了,请纠正我)从问题陈述来看,似乎是这样。我意识到MD5无法解密。(散列是一种方式)但由于有更多的信息——比如字符串前缀随着长度增加2而生成,我的电子邮件地址——这可能是可能的。这个谜题是从哪里来的?我很确定我已经在什么地方读过了。用两个字符的步骤强制执行MD5,这真是面试中的一个虚构问题,不是吗?