老规矩直接上代码
void myutils::EncAndDec(const QString &filePath)
{
static QByteArray key1 = "heyunxuan";
static QByteArray key2 = "bsjcehc";
QFile file(filePath);
if (!file.open(QIODevice::ReadWrite)) {
// 文件打开错误处理
return;
}
QByteArray data = file.readAll();
for(int i = 0; i < data.size(); ++i)
{
int keyIndex1 = i % key1.size();
int keyIndex2 = i % key2.size();
data[i] = data[i] ^ key1[keyIndex1];
data[i] = data[i] ^ key2[keyIndex2];
}
file.seek(0); // 指针重新定位到文件开头
file.write(data); // 写入加密后的数据
file.close();
}
这个函数会使用自定义的两个key进行加密(解密),当将原文输入后会得到密文文件;将密文文件输入后就会得到原文文件,十分方便好用。提供给不想用标准对称算法的同学。