首页 > 其他分享 >下载的zip压缩包怎么都要密码?是因为我没开会员吗?

下载的zip压缩包怎么都要密码?是因为我没开会员吗?

时间:2024-10-26 12:50:40浏览次数:3  
标签:没开 zip zipfile 压缩文件 密码 path password 压缩包

解压缩收费?

有人咨询我了这样一个问题:“最近,我下载了一些压缩文件,但是我发现,我没办法解压缩,它要求我输入密码,我已经下载了好几个解压缩软件了,都不能用,这是不是就是想问我要钱?以前我不用交钱就可以解压缩文件啊,为什么现在不行了呢?”

 

听到这个问题,我意识到,这个咨询的人对于电脑知识的认识可能不多,我耐心为其解释,”不是这样的,输入密码,不是因为解压缩软件要会员费才能解压缩,而是压缩文件的人设置了密码,要知道密码才能解压。“

虽然,我觉得我讲的是比较清楚的,但是,很明显,对方可能还是没听懂,他仍然非常困惑,”那不是要我交钱,为什么我下载的文件都不能解压呢?”

我继续解释,“因为创建压缩包的人设置了密码,所以需要密码。”

他仍然不懂,“什么密码?我以前解压缩都没用过密码啊?密码哪里来,要开会员给吗?还是那个网盘提取码吗?”

好吧,看来只是讲,是没办法讲明白了,我必须完整演示一次了。

压缩文件

软件下载

通常,我们需要一个解压缩软件,才能够进行解压缩,解压缩软件通常是不需要花钱的,例如,一个非常好用的压缩软件,7-zip官网地址

打开以后看到的应该是像这样的页面:

 选择对应的版本,点击download下载,然后按照提示进行安装即可。

压缩文件设置密码

安装7-zip以后,右键选择要压缩的文件,找到7-Zip的选项,然后选择,“添加到压缩包”。

此时,就可以添加密码,添加密码以后,以后就需要密码才能够解压文件。

 

 python解压zip

zipfile

通过zipfile库,可以进行zip包的解压

import zipfile
import os

def unzip_file(zip_path, password, extract_to="."):

    if not zipfile.is_zipfile(zip_path):
        print(f"{zip_path}不是一个zip文件")
        return

    with zipfile.ZipFile(zip_path, "r") as zip_ref:
        password_bytes = password.encode("utf-8")
        try:
            zip_ref.extractall(path=extract_to, pwd=password_bytes)
            print(f"文件已解压到:{os.path.abspath(extract_to)}")
        except RuntimeError:
            print("解压失败,密码可能不正确")

忘记密码

我们常常遇到这样一种情况,当初为了保护自己的文件安全,给压缩包设置了密码,但是过了一段时间,忘记了,此时又开始追悔莫及,“真是糟糕啊,我为什么要乱设密码呢?密码到底是多少?”,但是苦思冥想就是记不起来了,那么还有什么补救措施吗?

正常来说,是没有办法的,如果忘记了密码,那么压缩文件可能就没办法找回了,不过,如果密码特别简单,可能被“弱口令爆破”的方法破解。

弱口令爆破的原理就是,通过程序自动去测试解压密码,因为程序的运行速度很快,而压缩文件又没有特殊的保护限制(例如,3次输错锁定禁止尝试),那么在这种情况下,如果你的密码过于简单,就可能被程序试验出来,从而达到所谓“破解压缩包密码“。

下面,是一个可能的实现,需要提供一个包含常用密码的列表:

import zipfile
import os


def unzip_file_with_password_list(zip_path, password_list, extract_to="."):

    if not zipfile.is_zipfile(zip_path):
        print(f"{zip_path}不是一个zip文件")
        return

    with zipfile.ZipFile(zip_path, "r") as zip_ref:
        for password in password_list:
            try:
                zip_ref.extractall(path=extract_to, pwd=password.encode("utf-8"))
                print(f"文件已解压到:{os.path.abspath(extract_to)}")
                print(f"密码是:{password}")
                return
            except (RuntimeError, zipfile.BadZipFile):
                pass
        else:
            print("密码没有被找到")


zip_file_path = "1.zip"
password_list = list([str(i) for i in range(10000)])
output_dir = "output_folder"

unzip_file_with_password_list(zip_file_path, password_list, output_dir)

安全提示

虽然在现代较为安全的加密实现下,使用复杂密码进行压缩文件是足够安全的。但是在早期,一些加密方式较为简单,可能容易被利用或找到漏洞,因此,早期的加密压缩包可能有其他能够打开的方式。这提示我们,古老的加密压缩包可能是不够安全的,而且,我们也不应该使用古老的压缩软件进行加密。

有这样一个问题:“如果我把密码设置的非常简单,那么文件就不安全。如果我设置的非常复杂,等到我自己忘了密码,就没办法通过弱口令爆破找回了,该怎么办?”

这真是一个复杂的问题,首先,我们需要明确,既然我们已经决定要保护好文件了,那么一定不要使用弱口令,应该使用具有足够安全性的复杂密码。但是复杂密码的遗忘确实可能导致不能找回,这就说明了,我们必须要想办法记住我们设置的密码,否则就会有很大的麻烦。

还有这样一个问题,“在多年前,我在某个网站下载了一个文件,我清楚的记得,那个网站的地址就是压缩包的密码,但是时至今日,网站的地址我早就忘记了,还有可能弱口令爆破吗?”

如果我们假设这个网站的地址是以www.开头的,.com作为结尾的,那么确实,这个密码的长度会很长,即使网站的域名不算复杂,但是如果将整个密码作为弱口令来尝试的话,那么可能确实难以做到。但是,在这种情况下,如果可以清楚的记得密码的一部分,我们可以修改弱口令爆破的实现,将这一部分写入到程序中,这样,就只需要尝试原本域名的部分即可。

注意:未经许可,尝试破解他人的加密文件可能是违法行为,因此,弱口令爆破的方式仅适用于在忘记了自己的文件密码的情况下,有一个尝试的可能,请勿用于非法用途。

标签:没开,zip,zipfile,压缩文件,密码,path,password,压缩包
From: https://blog.csdn.net/sagegrass/article/details/143245935

相关文章

  • [Nginx] 开启 gzip
    如果资源已经被压缩成Gzip格式了,Nginx不需要再次压缩。只需确保Nginx的配置正确指向这些Gzip文件,并使用gzip_static指令。如果资源不是Gzip格式,就需要全配置一下。http{ ## #GzipSettings ## gzipon;#启用gzip压缩 gzip_min_len......
  • 【Python中的内置函数】max、map、zip等函数的实用技巧!
    Python中的内置函数:max、map、zip等函数的实用技巧Python提供了丰富的内置函数,帮助开发者高效编写简洁的代码。在这篇文章中,我们将详细探讨几个常用的内置函数,如max、map和zip,并展示如何在实际项目中灵活运用这些函数。本篇将结合代码示例,深入探讨它们的使用技巧,帮助你......
  • 08.Sleuth(Micrometer)+ZipKin分布式链路追逐
    1.Sleuth进入维护模式替代方案->MicrometerTracing2.分布式链路追踪概述2.1出现背景在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协调产生最后的结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时......
  • 小皮搭建dvwa超详细教程(附压缩包)
    非常奇怪,平时搭建其他靶场基本上10分钟内搞定从昨天晚上我就开始被dvwa各种奇怪的问题卡包括下小皮一直提醒站点创建成功结合这个老哥的公钥私钥:phpstudy+dvwa搭建_phpstudey+dvwa-CSDN博客写一篇比较准确的流程1、下载好小皮 2、创建dvwa站点 确定路径文件夹下的文......
  • Windows安装MySQL(zip安装)
    1.下载#dev.mysql.com>Download>下载MySQLCommunity(GPL)Downloads2.配置my.ini[mysqld]#一定要加这个,默认启动端口是3306,一般不会用默认端口port=50013#设置mysql的安装目录,一定要\\,否则不识别basedir=G:\\soft\\mysql-8.4.3-winx64#设置mysql数据库的数据的......
  • minizip-demo
     minizip https://github.com/domoticz/minizip zlib  https://github.com/madler/zlib/archive/refs/tags/v1.3.1.zip 编译zlib,minizip,然后用下面的工程包含minizip的库#include"elapse.h"#include<iostream>#include<vector>#include<fstream......
  • [Windows]文件搜索利器Everything(附zip)
    前言写代码过程中,老大突然发一条信息老大:这周周报发一下。我:好的。然后我就显示桌面打开-我的电脑找到E盘,找到周报文件夹寻找到所有周报中今天的周报复制发送当我用上Everything之后打开,输入周报copy发送Everything是一款高效实用的系统文件搜索工具,相信大部分......
  • [Windows]文件搜索利器Everything(附zip)
    前言写代码过程中,老大突然发一条信息老大:这周周报发一下。我:好的。然后我就显示桌面打开-我的电脑找到E盘,找到周报文件夹寻找到所有周报中今天的周报复制发送当我用上Everything之后打开,输入周报copy发送Everything是一款高效实用的系统文件搜索工具,相信大部分坛友......
  • .NET压缩zip、.NET解压zip
    参考:https://blog.csdn.net/zhaotianff/article/details/141156035usingSystem.IO.Compression;namespaceXCG.Commons{publicclassZipUtil{///<summary>///压缩zip///</summary>///<paramname="......
  • MySQL(压缩包)配置过程
    1.下载MySQL安装包MySQL::DownloadMySQLCommunityServer2.将下载完成的压缩包解压到某一目录,如:C:\MySQL并在系统环境中添加以上目录。 3.在上述目录下新建my.ini文件,并在文件中输入以下内容:[mysqld]port=3306basedir=C:\MySQLdatadir=C:\MySQL\datamax_connect......