我相信我可以将代码下载到PHP或Linux或任何其他软件,然后直接查看MD5函数的源代码。然后,我可以不对加密进行反向工程吗?
这是代码-http://dollar.ecom.cmu.edu/sec/cryptosource.htm
如果“敌人”拥有创建它的代码,那么似乎任何加密方法都将毫无用处。我错了吗?
最佳答案
它不是加密,而是one way hashing mechanism。它消化字符串并产生(hopefully)唯一哈希。
如果是可逆加密,则zip
和tar.gz
格式将非常冗长。 :)
它对黑客没有太大帮助的原因(显然知道如何制造是有益的)是,如果他们找到了散列系统的密码,例如2fcab58712467eab4004583eb8fb7f89
,他们需要知道用于创建它的原始字符串,以及是否使用了盐。这是因为,出于显而易见的原因,登录时会使用与生成密码字符串相同的方法对密码字符串进行哈希处理,然后将所得哈希与存储的内容进行比较。
同样,许多开发人员正在迁移到包含工作因素的bcrypt,如果散列花费1秒而不是.01秒,那么它将大大减慢为您的应用程序生成rainbow table的速度,而那些使用md5()
的旧PHP站点只会变得低迷。水果。
Further reading on bcrypt。
关于security - 为什么没有MD5功能的代码可以帮助黑客破解它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5812389/