1、下载地址
https://github.com/bricke/Qt-AES
2、在工程中包含需要的文件
3、示例代码
#include "qaesencryption.h"
#include <QDebug>
const QString key = QString("1234123412341234").toUtf8();
const QByteArray iv = QString("1234567812345678").toUtf8();
void GHelper::AES_fileEncryption(QString fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly))
{
return;
}
QByteArray fileData(file.readAll());
file.close();
QByteArray enBA = AES_encryption(fileData);
qDebug() << u8"原文:" << fileData << "\n" << u8"密文:" << enBA;
if (!file.open(QIODevice::Truncate | QIODevice::WriteOnly))
{
return;
}
if (file.write(enBA))
{
qDebug() << "save file ok ";
}
file.close();
}
void GHelper::AES_fileDecryption(QString fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly))
{
return;
}
QByteArray fileData = file.readAll();
file.close();
QByteArray deBA = AES_decryption(fileData);
qDebug() << u8"密文:" << fileData << "\n" << u8"原文:" << deBA;
if (!file.open(QIODevice::Truncate | QIODevice::WriteOnly))
{
return;
}
if (file.write(deBA))
{
qDebug() << "save file ok ";
}
file.close();
}
QByteArray GHelper::AES_encryption(const QByteArray& data)
{
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::CBC, QAESEncryption::PKCS7);
QByteArray enBA = encryption.encode(data, key.toUtf8(), iv); //CBC模式(必须要有初始IV向量)
return enBA.toBase64();
}
QByteArray GHelper::AES_decryption(const QByteArray& data)
{
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::CBC, QAESEncryption::PKCS7);
QByteArray enBA = QByteArray::fromBase64(data);
QByteArray deBA = encryption.decode(enBA, key.toUtf8(), iv); //CBC模式(必须要有初始IV向量)
return QAESEncryption::RemovePadding(deBA, QAESEncryption::PKCS7);
}