sli*_*lim 6 security hash open-source md5 cryptography
我相信我可以将代码下载到PHP或Linux或其他任何东西,直接查看MD5函数的源代码.我可以不对加密进行逆向工程吗?
这是代码 - http://dollar.ecom.cmu.edu/sec/cryptosource.htm
如果"敌人"拥有它创建的代码,似乎任何加密方法都是无用的.我错了吗?
这实际上是一个很好的问题.
MD5是一个哈希函数 - 它以这样的方式"混合"输入数据,使得做一些事情应该是不可行的,包括恢复给定输出的输入(它不是加密,没有密钥,它不是意思是倒置 - 而不是相反).一种手工描述是每个输入位在足够大的内部状态下被注入若干次,该内部状态被混合使得任何差异快速传播到整个状态.
MD5 自1992年开始上市.MD5的设计毫无秘密,也从来没有任何秘密.
自2004年第一次碰撞发布之年(产生相同输出的两个不同的输入消息)以来,MD5被认为是加密破坏的; 它被认为是自1996年以来的"弱"(当时发现了一些结构性质,据信最终有助于建筑物碰撞).但是,还有其他哈希函数,它们与MD5一样公开,并且尚未知道其中的弱点:SHA-2族.较新的哈希函数目前正在作为SHA-3竞赛的一部分进行评估.
真正令人不安的部分是没有已知的数学证明可能实际存在散列函数.散列函数是公开描述的有效算法,其可以嵌入为有限,固定和小尺寸的逻辑电路.对于计算复杂性的从业者来说,有可能出现一种不能反转的电路,这有点令人惊讶.所以现在我们只有候选人:没有人发现任何弱点的功能,而不是没有弱点的功能.另一方面,MD5的情况显示,显然,从已知的结构弱点到实际碰撞到攻击需要相当长的时间(1996年的弱点,2004年的碰撞,应用碰撞 - 到一对X.509证书 - 在2008年),所以当前的趋势是使用算法敏捷性:当我们在协议中使用哈希函数时,我们还考虑如果哈希函数被证明是弱的,我们如何能够转换到另一个.
它不是加密,而是单向散列机制.它消化字符串并产生(希望)唯一的哈希值.
如果它是一个可逆的加密,zip
并且tar.gz
格式将是相当冗长.:)
它不能帮助黑客太多(显然知道如何制作一个是有益的)的原因是,如果他们找到一个被散列的系统的密码,例如2fcab58712467eab4004583eb8fb7f89
,他们需要知道用于创建它的原始字符串,以及如果使用任何盐.这是因为当您登录时,出于显而易见的原因,密码字符串使用与生成密码字符串相同的方法进行哈希处理,然后将生成的哈希值与存储的哈希值进行比较.
此外,许多开发人员正在迁移到包含工作因素的bcrypt,如果散列需要1秒而不是.01秒,它会大大减慢为您的应用程序生成彩虹表,而那些旧的PHP站点md5()
只会变成低挂水果.
良好的加密操作的标准之一是算法的知识不应该使破解加密更容易.因此,在不知道算法和密钥的情况下加密不应该是可逆的,并且无论算法的知识如何,散列函数都不能是可逆的(所使用的术语是"计算上不可行的").
MD5和其他散列函数(如SHA-1 SHA-256等)对创建摘要或"指纹"的数据执行单向操作,该摘要通常比明文小得多.这种单向函数无法反转以检索明文,即使您确切知道该函数的作用.
同样,加密算法的知识也不会使从密文中恢复明文变得更容易(假设一个好的算法).在不知道所使用的加密密钥的情况下,反向过程是"计算上不可行的".
归档时间: |
|
查看次数: |
181 次 |
最近记录: |