使用QuaZipFile进行加密后形成的压缩包,用WinRAR,Bandizip等可以解压出来文件,用360解压,7-zip等解压后的为空
void MainWindow::zipFile(QFileInfo fileInfo, QString passwd)
{QString zipPath = fileInfo.filePath().left(fileInfo.filePath().indexOf('.')) + QString(".zip");QString password(passwd);QuaZip newZip(zipPath); // 将要打包生成的zip包if(newZip.open(QuaZip::mdCreate)) {QuaZipFile zipFile(&newZip); // 压缩包内的文件QuaZipNewInfo newInfo(fileInfo.fileName(), fileInfo.dir().path()); if(zipFile.open(QIODevice::WriteOnly, newInfo, password.toUtf8().constData(), 0, 8)) {QFile file(fileInfo.filePath());if(file.open(QIODevice::ReadOnly)) {zipFile.write(file.readAll());} else {qDebug() << "<file not found." << _INFO_STR_ << ">";}file.close();zipFile.close();} else {qDebug() << "<zipFile open failed." << _INFO_STR_ << ">";}} else {qDebug() << "newZip open failed." << _INFO_STR_ << ">";}newZip.close();
}
// 调用函数QFileInfo info(QString("C:\\Users\\XingWei\\Documents\\untitled33\\DetechThread.h"));zipFile(info, "123456");
此时看到已经生成了zip包,如下图所示。
通过测试压缩包的正确性,我采用了不同的解压工具进行测试,解压结果如下:
解压工具 | 是否正确解压 |
---|---|
WinRAR | 是 |
Bandizip | 是 |
Windows资源管理器 | 是 |
360解压 | 否 |
7-Zip | 否 |
好压 | 否 |
怎么回事呢,有的行,有的不行。。
就只是打包压缩了一个文件而已,按理说,要么这些工具都可以解出来,要么都不行
。
解决方案,为了能够适配所有解压工具,只是在上述代码中做一处更改即可。
// 将上述中的
QuaZipNewInfo newInfo(fileInfo.fileName(), fileInfo.dir().path());
// 更改为
QuaZipNewInfo newInfo(fileInfo.fileName(), fileInfo.filePath());
对,就这样,一切便解决了。。。
使用QuaZipFile进行加密后形成的压缩包,用WinRAR,Bandizip等可以解压出来文件,用360解压,7-zip等解压后的为空相关推荐
- 【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )
文章目录 一.解压 apk 文件 二.加密生成 dex 文件 三.打包未签名 apk 文件 四.完整代码示例 五.文件解压缩相关代码 六.执行结果 参考博客 : [Android 安全]DEX 加密 ...
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )
文章目录 一.判定是否是第一次启动 二.递归删除文件操作 三.解压 Zip 文件操作 四.解压操作相关代码 参考博客 : [Android 安全]DEX 加密 ( 常用 Android 反编译工具 | ...
- linux把文件复制到压缩包里,Linux学习笔记(二十)文件压缩 zip压缩、tar打包、打包、解包...
一.zip压缩 首先安装zip与unzip yum install -y zip/unzip zip 1.txt.zip 1.txt 压缩文件1.txt,压缩文件名称为1.txt.zip zip -r ...
- 检查压缩包是否损坏_修复损坏的gzip压缩文件之原理篇
接修复损坏的gzip压缩文件之原理篇,再次引用GZIP结构图: 已知修复一个损坏的gzip文件的关键环节在于找到下一个正常压缩包的起始点.根据结构图中的信息可知,每个压缩包的开始结构中有是否到达尾部标 ...
- 【java】 文件批量下载并压缩为zip压缩包
[java] 文件批量下载并压缩为zip压缩包 java常用的压缩技术 java中常见实现压缩与解压 业务场景 代码实现 注意点 java常用的压缩技术 常见的压缩格式有很多种,例如:zip.rar. ...
- c++配置并使用bit7z加密压缩或解压7z文件
本文使用bit7z bit7z is a C++ static library which allows to compress and extract many file archive forma ...
- Excel记录指定文件夹下的所有文件名;批量解压压缩包,处理压缩包套压缩包问题;
10.20 发现一个问题: 当压缩包过大,文件条目超过1048576时,rarfile库中的代码已经不能解决这个压缩包了,需要加装unrar库(from unrar import rarfile)和u ...
- 360病毒|360后缀文件|360勒索病毒|文件被加密为360|中了360勒索病毒怎么办?|数据库文件恢复|数据恢复|
什么是勒索病毒 勒索病毒是一种目前流行的病毒,通过网络等多种途径传播,受害者电脑感染该病毒后后,病毒将自动加密受害者电脑里的多种常见文件,使得受害者的重要资料文件无法正常使用,或者是锁住用户电脑,并以 ...
- cmake编译安装完成后 执行cmake --version报错 bash: /usr/bin/cmake: 没有那个文件或目录
cmake编译安装完成后 执行cmake --version报错 bash: /usr/bin/cmake: 没有那个文件或目录 cmake 没有那个目录 - 未完代码 - 博客园 因为直接使用cma ...
- JAVA编译成文件的说法_下列关于使用Javac命令编译后生成文件的说法中,正确的是?...
下列关于使用Javac命令编译后生成文件的说法中,正确的是? 答:编译后生成的文件可以在Java虚拟机中运行\n\n编译后生成的文件为二进制文件\n\n编译后生成文件的后缀名为.class 线性表的链 ...
最新文章
- stm 32 IO重映射
- webbrowser php,C# WinForm WebBrowser 设置为编辑模式的示例代码
- LeetCode N-Queens
- event级别设置Resumable Space Allocation
- spring mvc DispatcherServlet详解之二---request通过Controller获取ModelAndView过程
- 关于mydumper的.metadata文件丢失
- php 钩子,php钩子原理是什么
- 转载:说一下AI的前景吧
- 数字图像处理总结(冈萨雷斯版)
- 没有任何匹配: mod_auth_mysql 阿里云_文案丨网易云让人感触良多的文案
- C语言底层原理(二):动态库、静态库
- 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第六章 使用c语言操作dsp寄存器(以SCI为例进行说明))
- 遗传算法matlab_当结构设计遇到遗传算法应用ANSYS和MATLAB联合优化设计探索(二)...
- SUBMAIL 短网址 API 授权与验证机制
- 惠普触控板使用指南_手势操作更简便 笔记本触控板使用简介
- 设计模式(一):工厂模式
- “我,从油漆工开始的80后,曾经靠副业的收入买车买房”
- 第十二章、GDK学习
- vant 动态 粘性布局_Sticky 粘性布局
- 赛码浪潮笔试题库软件实施岗位_校园招聘在线笔试,原来大家都在用赛码