本人做的一个项目,为保证拷贝的数据的完整性,从客户那里拷贝数据进行加密压缩后导出,然后进行解密处理。
利用电脑自带工具 7z.exe,
具体实现核心接口函数
bool Package7zipCopy(const QString &sFileName, const QString &sPreFix)
{
QString sExportFileNames = sFileName + ".7z";
QString sImportFileNames = sFileName + sPreFix;
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QString finalCmdStr = "7z.exe && 7z a -p" + st_sDefaultEncryptionPassWord + " " + sExportFileNames + " " + sImportFileNames;
QByteArray ba = finalCmdStr.toLocal8Bit(); // toLocal8Bit 支持中文
AllocConsole();
ShowWindow(GetConsoleWindow(), SW_HIDE);
int i = system(ba);
QFile qfile;
qfile.setFileName(sImportFileNames);
if (QFile::exists(sImportFileNames))
{
qfile.remove(sImportFileNames);
}
return true;
}
例如
sFileName = “D://fileData/imagedata”;
sPreFix = “.txt”;
st_sDefaultEncryptionPassWord 为预设加密解密密码**