一 、MD5 加密
#include <QCryptographicHash>
// MD5 加密
QString Dialog_login::MD5_encryption(const QString &data)
{
QCryptographicHash md5(QCryptographicHash::Md5); //使用MD5加密
md5.addData(data.toUtf8(),data.size()); // 添加数据
QByteArray bArry = md5.result(); //获取MD5加密后的密码
QString md5_date;
md5_data.append(bArry.toHex());
return md5_data;
}
二、AES 加密和解密
1、下载库:https://github.com/bricke/Qt-AES
下载后需要下面5个文件,把这些文件复制出来放到一个文件夹下:
2、 qt 工程添加这些文件
3. 编写加密解密代码
#include "aesni/qaesencryption.h"
// 加密
QString Dialog_login::AES_encryption(const QString &data, const QString &key)
{
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::PKCS7);
QByteArray enBA = encryption.encode(data.toUtf8(), key.toUtf8());
return QString::fromLatin1(enBA.toBase64());
}
// 解密
QString Dialog_login::AES_decryption(const QString &data, const QString &key)
{
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::PKCS7);
QByteArray enBA = QByteArray::fromBase64(data.toUtf8());
QByteArray deBA = encryption.decode(enBA, key.toUtf8());
return QString::fromLatin1(QAESEncryption::RemovePadding(deBA, QAESEncryption::PKCS7));
}