数字华容道技巧5x5,网上流行的复杂5x5解锁( 四 )


我只要给zip压缩包设置一个复杂的密码,世界上任何一个黑客都破解不了了吗?
这个问题很好,在软件破解领域,属于一个非常经典的问题 。软件破解在过去很流行,就是一个Windows上面的软件,需要输入注册码、序列号之类的东西 。高手往往可以轻松破解出注册码 。还有一种叫做黑客,就是说一个网站需要输入密码才能进去,而黑客通过一定手段,可以设法“破解”密码或者绕开正常登录机制 。不管密码设置设多复杂,都难厄运 。
于是就有人问,我有一个压缩包被加密了,有没有大牛可以破解的?得到的答案基本都是惊人的一致,除了穷举法,再没有其他办法了!不论多高的高手,都没有办法“秒破” 。密码太简单除外 。但是在软件破解里面,不论注册码算法多么复杂,注册码多长,哪怕是一万个字符,总是可以破解的 。甚至出现一种声音,理论上没有不可破解的软件 。
这里说的理论上,没有包括穷举 。换句话说,理论上都可以“秒破” 。现在的问题,就在于,为什么会出现这种情况?为什么软件注册码可以破解,网站登录可以破解,而压缩包这么一个看似简单的东西却破解不了呢(密码太简单除外)?软件注册码保护,属于基于算法的保护 。也就是说只要软件敢公开源代码,敢公开注册码生成算法,则分分钟就被破解了 。
比方说office软件在安装时就要输入序列号 。它的生成算法是不变的,一旦搞到算法,就能马上做一个序列号生成器,不管装在谁的电脑上,都适用,每套office的算法都一样 。显然,像office这样的收费软件不可能公开序列号生成算法 。但是它要运行,必然在“我”的电脑上运行(而不是服务器),它的内存必然“我”理论上能完全掌握 。
只要有耐心,“我”就一定可以反编译、反汇编、再加上内存分析,从而就一定可以找到算法 。除非它不在“我”的电脑上正常运行 。黑客破解,密码和验证算法在服务器,不在“我”的电脑上,则不像软件破解那样理论上所有都可破解,而是“碰运气” 。它主要是找服务器漏洞,运气好就找到了,运气不好找不到 。找到了后,就能轻松绕开密码验证,或轻松截获或查询密码 。
而压缩包密码的破解,则与上面两种情况有了很大的不同!压缩包的加密,不是基于算法的保密,而是基于密钥的保密 。软件破解是基于算法的保密 。软件破解是知道算法后,根据算法生产注册码,通过验证注册码判断是否合法用户 。那么有了算法,我们就可以自己算出注册码,或者干脆把判断注册码是否合法的逻辑颠倒一下 。比如把代码改成,如果注册码错误,就打开主界面正常使用 。
而压缩包的算法是公开的,它加密用的基本以AES算法为主,任何人都可以去网上学习 。压缩包不是程序,不是代码,不是机器指令 。而是实际的加密数据 。压缩包不验证密码,没有密码正确就显示内容,密码错误就不显示这样的逻辑 。我们输入的密码是用来全文解密的 。随便输入一个密码都可以解密,只不过解密出来的东西可能是乱码 。
多数压缩包管理软件会提示crc校验失败,这就是说东西已经解密了,但是是错的 。正规的提示不会告诉你密码错误,因为压缩包中压根儿就并没有以任何形式存储密码,它无法立刻检测到底什么密码才是正确的 。只有你用这个错误密码解密到一半,发现“乱码”后才知道 。我们可以这样理解,软件破解中,软件作者一定,百分比,无一例外地可以反查一个软件的注册码 。
而压缩包破解中,任何人都无法通过压缩包本身反查密码,包括写压缩包管理软件的作者 。刚说过了,压缩包中压根儿就没有关于解密密码的任何信息!刚已经说到,压缩包的加密算法基本是公开的 。这里顺便提一下一个思想 。有时候,越是公开的东西,越是安全 。为什么?因为这样的加密算法经过了无数计算机专家、密码学家、数学家的考验 。

推荐阅读