热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

我只要给zip压缩包设置一个复杂的密码,世界上任何一个黑客都破解不了了吗?

这个问题很好,在软件破解领域,属于一个非常经典的问题复杂的密码设置。

这个问题很好,在软件破解领域,属于一个非常经典的问题复杂的密码设置

我只要给zip压缩包设置一个复杂的密码,世界上任何一个黑客都破解不了了吗?

软件破解在过去很流行,就是一个Windows上面的软件,需要输入注册码、序列号之类的东西。高手往往可以轻松破解出注册码。还有一种叫做黑客,就是说一个网站需要输入密码才能进去,而黑客通过一定手段,可以设法“破解”密码或者绕开正常登录机制。不管密码设置设多复杂,都难厄运。

我只要给zip压缩包设置一个复杂的密码,世界上任何一个黑客都破解不了了吗?

于是就有人问,我有一个压缩包被加密了,有没有大牛可以破解的?得到的答案基本都是惊人的一致,除了穷举法,再没有其他办法了!不论多高的高手,都没有办法“秒破”。密码太简单除外。

但是在软件破解里面,不论注册码算法多么复杂,注册码多长,哪怕是一万个字符,总是可以破解的。甚至出现一种声音,理论上没有不可破解的软件。这里说的理论上,没有包括穷举。换句话说,理论上都可以“秒破”。

现在的问题,就在于,为什么会出现这种情况?为什么软件注册码可以破解,网站登录可以破解,而压缩包这么一个看似简单的东西却破解不了呢(密码太简单除外)?

软件注册码保护,属于基于算法的保护。也就是说只要软件敢公开源代码,敢公开注册码生成算法,则分分钟就被破解了。比方说office软件在安装时就要输入序列号。它的生成算法是不变的,一旦搞到算法,就能马上做一个序列号生成器,不管装在谁的电脑上,都适用,每套office的算法都一样。显然,像office这样的收费软件不可能公开序列号生成算法。但是它要运行,必然在“我”的电脑上运行(而不是服务器),它的内存必然“我”理论上能完全掌握。只要有耐心,“我”就一定可以反编译、反汇编、再加上内存分析,从而就一定可以找到算法。除非它不在“我”的电脑上正常运行。

黑客破解,密码和验证算法在服务器,不在“我”的电脑上,则不像软件破解那样理论上所有都可破解,而是“碰运气”。它主要是找服务器漏洞,运气好就找到了,运气不好找不到。找到了后,就能轻松绕开密码验证,或轻松截获或查询密码。

而压缩包密码的破解,则与上面两种情况有了很大的不同!

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

而压缩包的算法是公开的,它加密用的基本以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万年,依然是天文数字。


推荐阅读
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Eclipse 开发环境配置指南:从下载到免安装配置
    Eclipse 是一个广泛使用的开源Java开发环境,掌握其正确的安装与配置方法对于初学者至关重要。本文将详细介绍如何下载、安装及配置Eclipse,确保您的开发环境搭建顺利。 ... [详细]
  • SSE图像算法优化系列三:超高速导向滤波实现过程纪要(欢迎挑战)
    自从何凯明提出导向滤波后,因为其算法的简单性和有效性,该算法得到了广泛的应用,以至于新版的matlab都将其作为标准自带的函数之一了&#x ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 在Linux系统中,许多应用程序以源代码的形式提供,这给安装带来了挑战。本文旨在介绍一种简化源码软件安装流程的方法,帮助用户更加轻松地完成安装。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
author-avatar
手机用户2502911617_428
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有