`
oklook249900241
  • 浏览: 26879 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

解压密码已知的zip文件

 
阅读更多

第一步:剥去密码:

下面方法是解密工作,参数:

srcFile:源文件地址
destfile:解密后的临时文件
pwd:密码

 

public static void decrypt(String srcFile, String destfile, String pwd) throws Exception {
        SecureRandom sr = new SecureRandom();
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
        DESKeySpec dks = new DESKeySpec(padding(Base64.encode(pwd.getBytes())));
        SecretKey securekey = keyFactory.generateSecret(dks);

        Cipher cipher = Cipher.getInstance("DES");
        cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
        InputStream is = new FileInputStream(srcFile);
        OutputStream out = new FileOutputStream(destfile);
        CipherOutputStream cos = new CipherOutputStream(out, cipher);
        byte[] buffer = new byte[1024];

        byte[] pwdByte = new byte[20];
        int len = is.read(pwdByte);
        byte[] hashByte = DigisterUtil.getHashEncode(pwd.getBytes());

        if (len != 20 || hashByte.length != 20) {
            throw new RuntimeException("密码错误");
        }
        for (int i = 0; i < 20; i++) {
            if (pwdByte[i] != hashByte[i]) {
                throw new RuntimeException("密码错误");
            }
        }

        int r;
        while ((r = is.read(buffer)) >= 0) {
            cos.write(buffer, 0, r);
        }
        cos.close();
        out.close();
        is.close();
    }

 第二步:用ZipFile和ZipEntry解压缩文件:

 

ZipFile zipFile = new ZipFile(上面的临时文件);
Enumeration entryEnu = zipFile.entries(); 
while (entryEnu.hasMoreElements()) { 
    ZipEntry entry = (ZipEntry) entryEnu.nextElement();
    is = zipFile.getInputStream(entry); 
    bos = new ByteArrayOutputStream(is.available());
    byte[] buff = new byte[8192]; int len = 0;
    while ((len = is.read(buff)) != -1) {
         bos.write(buff, 0, len); 
    } 
    bis = new ByteArrayInputStream(bos.toByteArray()); 
    break; 
}
temp.delete(); 
 

 

 

分享到:
评论

相关推荐

    steamcommunity_302_V10.6_解压密码dogfight360.zip

    【标题】"steamcommunity_302_V10.6_解压密码dogfight360.zip" 提供的信息表明,这是一个与Steam社区相关的压缩文件,版本为V10.6,可能包含了一些更新或者资源,解压时需要输入特定的密码“dogfight360”。...

    Python实现加密的RAR文件解压的方法(密码已知)

    rf = rarfile.RarFile(path1, pwd="123") # pwd 为解压密码 # 解压所有文件到指定路径 rf.extractall(path=path2, pwd="123") ``` 如果 RAR 文件没有密码,则可以直接使用如下代码: ```python from unrar import...

    压缩文件批量解压 支持带密码的压缩包

    "批量解压"是处理大量压缩文件的一种高效手段,尤其对于那些需要解压的rar或zip格式的文件,手动逐一解压不仅耗时,而且当涉及到带密码的压缩包时,反复输入密码更是繁琐。针对这些需求,出现了"BatchUnRar"这样的...

    xwiki_zipxwiki_zip(3-3)

    - **解压ZIP文件**:下载后的XWiki Zip 8.0文件需要先进行解压,得到包含所有必要文件的目录结构。 - **配置服务器**:根据你的服务器环境(如Apache、Jetty或Tomcat),配置相应的部署设置。 - **数据库连接**:...

    小鱼儿yr系统封装优化设置辅助工具V2.10.3(解压密码yrxitong.com).zip小鱼儿yr系统封装优化设置辅助工具V2.10.3.zip

    解压密码为yrxitong.com,确保了文件的安全性。 系统封装是将一个定制好的操作系统环境打包成镜像文件的过程,通常用于批量部署或备份还原。在这个过程中,用户可能需要进行系统清理、驱动管理、服务调整、注册表...

    【解压密码:sqsxfree】Icarus-3.2.7.18.zip

    解压密码为“sqsxfree”,解压后即可获取到软件的执行文件,方便用户进行安装和使用。Icarus的界面简洁易懂,无论对于新手还是经验丰富的用户,都能快速上手。 软件的核心功能在于其IP切换能力。它提供了大量的IP...

    发加乐服务端_解压密码88888888.zip

    【发加乐服务端_解压密码88888888.zip】是一个压缩包文件,其中包含有关“发加乐服务端”程序的相关资料。这个服务端可能是一个网络游戏、聊天平台或者其他需要服务器支持的应用的后台系统。解压该文件需要使用密码...

    新版的PHPzip!

    7. **密码保护**:可以为ZIP文件设置密码,增加安全性。 8. **HTTP传输**:可以用于上传和下载ZIP文件,这对于Web服务或API交互特别有用。 9. **错误处理**:提供丰富的错误处理机制,帮助开发者调试和解决可能...

    数据包中的线索 zip文件

    1. **解压与解密**:尝试使用常见或不常见的密码来解压,或者通过已知的漏洞来绕过密码。 2. **文件恢复**:如果文件被部分损坏或删除,可以使用专门的工具尝试恢复。 3. **隐藏文件检查**:zip文件中可能存在隐藏...

    CN.zip_zip

    在处理 ZIP 文件时,开发人员应当遵循最佳实践,例如使用已知安全的库(如 libarchive)来读写 ZIP 文件,避免因代码错误而引入漏洞。 5. **用户教育**:对于最终用户,他们需要知道不要随便下载和解压未知来源的 ...

    780 data.zip

    第三方工具如 WinRAR 和 7-Zip 提供更多选项,如部分提取、密码保护、自解压文件创建等。 在 ZIP 文件中,780 data 可能表示一个文件或文件夹。如果是一个文件,它可能是某种特定的数据格式,如文本文件、CSV 数据...

    sourceinsight-4.0.86.0-密码123.zip

    该压缩包文件“sourceinsight-4.0.86.0-密码123.zip”和“sourceinsight_4.0.86.0_密码123.zip”显然包含了SourceInsight 4.0.86.0的安装程序或文件,解压密码为“123”。通常,这样的文件可能包括安装程序(如Setup...

    HA-AccessPassView1.12_数据库密码.zip

    3. **操作流程**:用户解压下载的zip文件后,运行accesspv.exe即可启动软件。根据readme.txt的指示,用户可以学习如何使用工具来查找和恢复密码。 4. **适用范围**:由于是针对Access数据库,所以这款工具主要适用...

    如何使用7zip分卷解压内容.pdf

    - **密码保护**:部分分卷压缩文件可能设有密码保护,需要输入正确的密码才能解压。 通过以上步骤,您可以顺利地使用7-Zip解压分卷文件。这种技能在日常工作中非常实用,尤其是在处理大型数据集或跨平台传输文件时...

    wordpress zip 版本

    3. 解压ZIP文件:将下载的ZIP文件解压到服务器上的适当位置,通常为根目录。 4. 浏览安装向导:通过浏览器访问`http://yourdomain.com/wp-admin/install.php`,按照向导提示输入数据库信息,完成WordPress的基本配置...

    sql2008更改SA密码工具.zip

    1. **解压文件**:首先,你需要将下载的压缩包"sql2008更改SA密码工具.zip"解压到本地计算机的任意位置。 2. **运行工具**:找到解压后的可执行文件"sql2008更改SA密码工具.exe",双击运行。注意,由于这是修改...

    uldr.zip_zip

    用户可以通过各种解压软件,如WinRAR、7-Zip或Windows内置的解压缩功能来打开和提取ZIP文件的内容。 固件更新与驱动程序: 固件是存储在硬件设备内部的软件,控制设备的操作和功能。固件更新通常是为了修复已知问题...

    sd.zip_Windows编程_zip

    描述中的"someone can be seleted"可能是指在处理ZIP文件时,用户可以选择性地解压或操作其中的某些文件,而不是一次性解压整个压缩包。 ZIP文件的结构基于PKWARE的DOS时代的ZIP规范,后来发展成为开放标准,被广泛...

    data.zip

    如果要将多个文件或目录打包成ZIP文件,你可以选择要压缩的文件,然后选择“添加到压缩文件”选项,设置压缩格式为ZIP,选择合适的压缩级别和密码保护(如果需要),最后点击“确定”即可创建ZIP文件。 7. 其他压缩...

    DaTaoZi.zip

    3. **加密与安全性**:ZIP文件支持密码保护,通过设置密码可以确保文件内容不被未经授权的人访问。然而,早期的ZIP加密算法(如PKZIP 2.0)已知存在安全漏洞,现在推荐使用AES(高级加密标准)进行加密。 4. **跨...

Global site tag (gtag.js) - Google Analytics