Qt 使用QuaZip库生成MD5加密Zip格式压缩文件

QuaZip库下载地址: https://sourceforge.net/projects/quazip/files/latest/download

#include "quazip.h"
#include "quazipfile.h"
#include "quazipfileinfo.h"


void uploadAnswerPackege()
{
	// 压缩文件
	//JlCompress::compressDir(QString("%1.zip").arg(GMethod::instance()->getAnswerName()), DIR_RESULT);

	const QString& zipName(QString("%1.zip").arg(DIR_RESULT + GMethod::instance()->getZkzh()));
	QuaZip zip(zipName);
	if (!zip.open(QuaZip::mdCreate))
	{
		qDebug("Could not create zip: %s", qPrintable(zipName));
		return;
	}

	const QString& innerName = QString("%1.ans").arg(GMethod::instance()->getZkzh());
	QuaZipNewInfo newInfo(innerName);

	//生成MD5加密
	QByteArray byteArray;
	byteArray.append(innerName);
	QByteArray hash = QCryptographicHash::hash(byteArray, QCryptographicHash::Md5);
	QString strMD5 = hash.toHex();

	QuaZipFile file(&zip);
	bool ret = file.open(QIODevice::WriteOnly,
		newInfo,      // QuaZipNewInfo结构体引用    
		strMD5.toUtf8().constData(),    // 密码    
		0,            // CRC值(默认值是0)    
		8);          // 写入方法(0为文件夹,8为普通文件)    
	if (ret)
	{
		QFile file2(GMethod::instance()->getAnswerName());
		bool isopen = file2.open(QIODevice::ReadOnly);
		if (isopen)
		{
			// 开始写入文件的数据了    
			file.write(file2.readAll());
		}
		file2.close();
		file.close();
	}
	zip.close();

	ui->stackWidgetExam->setCurrentIndex(PAGE_END);
}


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值