而压缩包密码的破解,则与上面两种情况有了很大的不同!压缩包的加密,不是基于算法的保密,而是基于密钥的保密。软件破解是基于算法的保密。软件破解是知道算法后,根据算法生产注册码,通过验证注册码判断是否合法用户。那么有了算法,我们就可以自己算出注册码,或者干脆把判断注册码是否合法的逻辑颠倒一下。比如把代码改成,如果注册码错误,就打开主界面正常使用。

而压缩包的算法是公开的,它加密用的基本以AES算法为主,任何人都可以去网上学习。压缩包不是程序,不是代码,不是机器指令。而是实际的加密数据。压缩包不验证密码,没有密码正确就显示内容,密码错误就不显示这样的逻辑。我们输入的密码是用来全文解密的。随便输入一个密码都可以解密,只不过解密出来的东西可能是乱码。

多数压缩包管理软件会提示crc校验失败,这就是说东西已经解密了,但是是错的。正规的提示不会告诉你密码错误,因为压缩包中压根儿就并没有以任何形式存储密码,它无法立刻检测到底什么密码才是正确的。只有你用这个错误密码解密到一半,发现“乱码”后才知道。我们可以这样理解,软件破解中,软件作者一定,百分比,无一例外地可以反查一个软件的注册码。

而压缩包破解中,任何人都无法通过压缩包本身反查密码,包括写压缩包管理软件的作者。刚说过了,压缩包中压根儿就没有关于解密密码的任何信息!刚已经说到,压缩包的加密算法基本是公开的。这里顺便提一下一个思想。有时候,越是公开的东西,越是安全。为什么?因为这样的加密算法经过了无数计算机专家、密码学家、数学家的考验。

算法公开,而密钥(密码)保密,就成了加密解密的最佳实践。多数尝试自己发明一套加密算法的想法都是愚蠢的(密码学专家的专业研究除外)。所以说,压缩包加密之所以安全,可以认为它是加密算法公开,而密钥保密的成功典范。它是如此的安全,目前没有任何人可以通过除穷举法以外的其他任何办法破解(未来是否能找到这些公开加密算法的漏洞不好说)。

======分割线======看到评论很多人关心如果用穷举法,到底需要多长时间。下边我们不妨来算算。内容有点长,看结论就直接看粗体字。不太相信的,想自己算的可以详细看计算过程。目前zip、rar的主流加密算法是AES。AES分3种规格,主流是256位,此外还有192位、128位(位数越高安全性越高)。

128位是指密码的长度是128计算机位,即16字节。大致相当于20几个英文字符。换句话说,AES-128加密,用20几个随机英文字符足够安全了。我们就姑且只讨论128位的。256位的更难破。128位密钥,其可能性总共2^128=3.4×10^38。平均破解次数那就是除以2了,1.7×10^38。现在最厉害的超算之一是天河二号,排名前五,其极限速度是每秒运算6亿亿次。

这个速度是指最简单的运算,那就是整数加法。普通电脑CPU主频4GHz,极限速度就是40亿次运算每秒。如果是8核CPU就乘以8。那么一台天河二号超算大约相当于1百万台普通电脑。概括一下,AES-128加密平均需要穷举1.7×10^38次可以破解。一台天河二号超算极限运算速度一秒6*10^16次。这个运算是指整数加法运算,我们就姑且把复杂的AES解密看作加法这么简单吧。

接下来就是一看就懂的算式:1.7×10^38÷6×10^16=2.8×10^21秒。即90万亿年。看到没有,一台天河二号超算——全球排名前五的超算,破解一个足够复杂密码的压缩包,平均至少需要90万亿年。或许你会反驳,找第一名啊,好吧,第一名也就是天河二号速度的不到4倍。你还可以这样算,动用一亿台天河二号同时算,也就是把时间由90万亿年变成了90万年,依然是天文数字。

 2/2   首页 上一页 1 2 下一页

文章TAG:API  验签  加解密  配匙  解密  API接口的签名验签和加解密原理  配匙卡电脑解密要多久  
下一篇