Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Security 为什么';难道MD5函数的代码不能帮助黑客破解它吗?_Security_Open Source_Hash_Cryptography_Md5 - Fatal编程技术网

Security 为什么';难道MD5函数的代码不能帮助黑客破解它吗?

Security 为什么';难道MD5函数的代码不能帮助黑客破解它吗?,security,open-source,hash,cryptography,md5,Security,Open Source,Hash,Cryptography,Md5,我相信我可以将代码下载到PHP或Linux或其他任何地方,并直接查看MD5函数的源代码。我能不能对加密进行反向工程 这是密码- 如果“敌人”拥有创建密码,任何加密方法似乎都是无用的。我错了吗?这不是加密,而是加密。它消化字符串并生成()唯一散列 如果它是可逆加密,zip和tar.gz格式将非常冗长 它对黑客帮助不大的原因(显然知道如何创建密码是有益的)是,如果他们发现一个经过哈希处理的系统的密码,例如2fcab58712467eab4004583eb8fb7f89,他们需要知道用于创建密码的原始

我相信我可以将代码下载到PHP或Linux或其他任何地方,并直接查看MD5函数的源代码。我能不能对加密进行反向工程

这是密码-


如果“敌人”拥有创建密码,任何加密方法似乎都是无用的。我错了吗?

这不是加密,而是加密。它消化字符串并生成()唯一散列

如果它是可逆加密,
zip
tar.gz
格式将非常冗长

它对黑客帮助不大的原因(显然知道如何创建密码是有益的)是,如果他们发现一个经过哈希处理的系统的密码,例如
2fcab58712467eab4004583eb8fb7f89
,他们需要知道用于创建密码的原始字符串,以及是否使用了任何salt。这是因为当您登录时,出于明显的原因,密码字符串将使用与生成密码字符串相同的方法进行散列,然后将生成的散列与存储的内容进行比较

此外,许多开发人员正在迁移到包含工作因素的应用程序,如果哈希需要1秒而不是0.01秒,那么它会大大降低为您生成应用程序的速度,而那些使用
md5()
的旧PHP站点只会成为低挂果实


.

良好加密操作的标准之一是,对算法的了解不应使破解加密变得更容易。因此,在不了解算法和密钥的情况下,加密不应该是可逆的,而哈希函数也不应该是可逆的,无论是否了解算法(使用的术语是“计算不可行”)

MD5和其他哈希函数(如SHA-1 SHA-256等)对数据执行单向操作,从而创建通常比明文小得多的摘要或“指纹”。此单向函数无法反转以检索明文,即使您确切知道该函数的功能


同样,对加密算法的了解并不能使从密文中恢复明文变得更容易(假设是一个好的算法)。如果不知道所使用的加密密钥,则反向过程“在计算上不可行”。

这实际上是个好问题

MD5是一个散列函数——它“混合”输入数据的方式使得它不可能做很多事情,包括在给定输出的情况下恢复输入(它不是加密,没有密钥,也不意味着要反转——相反)。一种手动描述是,每个输入位在足够大的内部状态下注入几次,这种状态是混合的,因此任何差异都会迅速传播到整个状态

MD5是。MD5的设计没有秘密,也从来没有任何秘密

自2004年第一次冲突(两条不同的输入消息产生相同的输出)发布之年起,MD5就被认为在加密方面被破坏;自1996年以来,它被认为是“弱的”(当时发现了一些结构特性,人们认为这些特性最终有助于建筑碰撞)。然而,还有其他的散列函数,它们和MD5一样公开,并且还没有已知的弱点:家族。较新的散列函数目前正在作为竞争的一部分进行评估


真正令人不安的是,没有已知的数学证据证明哈希函数实际上可能存在。哈希函数是一种公开描述的高效算法,可以嵌入为有限、固定和小尺寸的逻辑电路。对于计算复杂性的实践者来说,有可能表现出一种不可逆的电路,这有点令人惊讶。所以现在我们只有候选者:没有人发现弱点的功能,而不是不存在弱点的功能。另一方面,MD5的案例表明,显然,从已知的结构弱点到实际的碰撞再到攻击需要相当长的时间(1996年的弱点,2004年的碰撞,2008年的应用碰撞——一对X.509证书),因此,当前的趋势是使用算法敏捷性:当我们在协议中使用哈希函数时,我们也会考虑如何转换到另一个,如果哈希函数被证明很弱。

+1;我希望MD5永远不会发生冲突(现在我会做恶梦:)简短的回答:同样的原因是知道如何相加并不能让你知道我加了哪两个数得到42。嗯。。。好啊我无法通过查看源代码来理解您是如何得到42的?我的源代码是“result=x+y”。我用了什么数字?