加密函數:
#define KEY 10
/********************************************************************************
參數:fileName:待加密的文件名(絕對路徑),encryptionName:加密生成的文件名(絕對路徑)
返回值:true,加密成功;false,加密失敗
*********************************************************************************/
bool fileEncrypt(QString &fileName, QString &encryptionName)
{
QFile read_file(fileName);
if(!read_file.open(QIODevice::ReadOnly))
{
return false;
}
QByteArray encryption_Array = read_file.readAll().toBase64();
for(int i = 0; i < encryption_Array.size(); ++i){
encryption_Array[i] = encryption_Array.at(i) ^ KEY;
}
QFile write_file(encryptionName);
if(!write_file.open(QIODevice::WriteOnly))
{
return false;
}
write_file.write(encryption_Array);
read_file.close();
write_file.close();
return true;
}
解密函數:
#define KEY 10
/**********************************************************************************
參數:encryptFile_name:待解密的文件名(絕對路徑),destFile_name:解密生成的文件名(絕對路徑)
返回值:true,解密成功;false,解密失敗
***********************************************************************************/
bool fileDecrypt(QString& encryptFile_name, QString& destFile_name)
{
QFile read_file(encryptFile_name);
if(!read_file.open(QIODevice::ReadOnly))
return false;
QByteArray database_Array = read_file.readAll();
for(int i = 0; i < database_Array.size(); ++i){
database_Array[i] = database_Array.at(i) ^ KEY;
}
database_Array = QByteArray::fromBase64(database_Array);
QFile write_file(destFile_name);
if(!write_file.open(QIODevice::WriteOnly))
return false;
write_file.write(database_Array);
read_file.close();
write_file.close();
return true;
}