Qt环境对文件的Base64+异或加密解密

 加密函数:

#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;
}

 

你可能感兴趣的:(Qt,加密解密,qt)