热门标签 | 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万年,依然是天文数字。


推荐阅读
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • OpenCV4.5.0+contrib编译流程及解决错误方法
    本文介绍了OpenCV4.5.0+contrib的编译流程,并提供了解决常见错误的方法,包括下载失败和路径修改等。同时提供了相关参考链接。 ... [详细]
  • zabbix中文乱码的问题
    在使用zabbix时,有时候会出现中文乱码的问题,如下:因为zabbix自身对中文简体的支持不完善,需要我们手动的去上传新的字体进行替换:1、在windows获取字体库文件在Windows上的 ... [详细]
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社区 版权所有