winrar解密(winrar密码破解方法)

????????最近进行开发时碰到压缩相关的使用,需要实现加密压缩一个文件夹,使用第三方工具WinRAR等进行解密解压,头一次用该功能,所以写篇博文简单记录一下开发过程。

目录

目录

一、zlib源码下载及库文件编译

1.库文件编译方法一:

2.库文件编译方法二

3.miniZip+zlib组合?

二、miniZip接口使用

三、加密压缩文件winrar解密夹源码

四、测试效果

五、工程下载



登录官方网址:下载最新源码版本Version1.2.13:

?解压下载的源码压缩包《zlib1213.zip》,使用VS2017编译库文件。

如下图,执行【文件】->【打开】->【CMake(M)】,打开解压后的文件“CMakeLists.txt。

? ?

?选择需要的编译模式,本例中选择了x86-Relese;执行【CMake】->【全部生成】。

?

生成成功后,库文件存储在缓存文件夹,选择【CMake】->【缓存(A)(仅x86-Relese)】->【打开缓存文件夹】->【zlib】,即可得到编译好的库文件,如下图所示,本例取动态库使用。

? ??

????????通过VS2017编译器打开https://blog.csdn.net/langhunxiaoyue/article/details/zlib-1.2.13/contrib/vstudio/vc14中自带的VS工程进行编译,也可以编译出zlib库文件,此方法不再详细介绍。

????????配置miniZip使用的文件,Zlib.lib/Zlib.dll是基础的库文件,其接口函数较为原始,我们取miniZip下的源winrar解密码和Zlib.dll配合使用【miniZip相当于在Zlib基础上封装了一层,使接口更加友好】,文件在压缩包中获取路径如下所示。

zlib头文件:

zlib-1.2.13zconf.h

zlib-1.2.13zlib.h

minizip源码:

zlib-1.2.13contribminizipioapi.c

zlib-1.2.13contribminizipioapi.h

zlib-1.2.13contribminizipcrypt.h

zlib-1.2.13contribminizipzip.c

zlib-1.2.13contribminizipzip.h

将zlib.lib、zlib.dll、zlib头文件、minizip源码放在一个文件夹下:

至此Zip压缩相关的库和代码便准备好了。

????????miniZip压缩相关的接口可在zip.h文件中查询,本例中,我们使用以下几个接口,也是压缩文件常用的接口。

 
 

例:将test.txt压缩为文件test.zip,流程如下:

1、调用zipOpen,新建并打开压缩文件test.zip。

2、调用zipOpenNewFileInZip3 ,向压缩文件中添加并打开文件test.txt。

3、调用zipWriteInFileInZip,将test.txt文件中的内容压缩到test.zip压缩包中的test.txt文件中。

4、调用zipCloseFileInZip?,关闭test.zip压缩包中的test.txt文件。

5、调用zipClose ,关闭压缩文件test.zip。

头文件调用:

 

文件CRC计算及压缩一个文件:

 

压缩整个文件夹:

 

压缩文件夹接口:

 

主函数

 

加密注意事项:进行加密压缩时,zipOpenNewFileInZip3 必须导入文件CRC的形参,如代码中所示。

????????使用VS2017,关联动态库zlib,编译上述代码,将编译通过的exe与zlib.dll放在同一文件夹下进行实验。

运行LoadUsing.exe,生成了压缩文件test.zip。

将原文件夹重命名test-old, 使用第三方工具“WinRAR”解压test.zip,输入密码“300”,解压成功。

将解压成功后的文件夹与原文件夹test-old进行比对,比对结果完全相同。如下图所示;

? ? ? ?

????????之前在很多帖子看到zlib加密压缩的文件,使用WinRAR等第三方工具无法解密,但我尝试的结果是都可以解密。

一定注意!!加密压缩时zipOpenNewFileInZip3 必须导入文件CRC的形参!!!

从博文头部,下载测试工程,使用VS2019打开编译测试。

该章节为新增加,文中是使用VS2017编译,工程包升级至VS2019编译。

转载请说明出处 内容投诉内容投诉
九幽软件 » winrar解密(winrar密码破解方法)