Qt MD5 和AES 加密 (有github源码)

  1. Qt 之 Aes CBC 加密 (有实例)

https://blog.csdn.net/qq78442761/article/details/121925466

#include <QCoreApplication>
#include <QCryptographicHash>
#include <QVector>
#include <QDebug>
#include "QAesEncryption.h"
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    QString key = "0123456789012345";
 
    qDebug() << "key.size : " << key.toUtf8().size();
 
    QString string = "Hello World";
 
    QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::PKCS7);
    QByteArray enBA = encryption.encode(string.toUtf8(), key.toUtf8());
    QByteArray enBABase64 = enBA.toBase64();
 
    qDebug() << "string : " << string;
    qDebug() << "enBA : " << enBABase64;
 
    enBA = QByteArray::fromBase64(enBABase64);
    QByteArray deBA = encryption.decode(enBA, key.toUtf8());
    //移除填充
    qDebug() << "deBA : " << QAESEncryption::RemovePadding(deBA, QAESEncryption::PKCS7);
 
    return a.exec();
}

  1. Qt MD5 和AES 加密 (有github源码)

一 、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));
    }

————————————————

版权声明:本文为CSDN博主「绿叶白墙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/chen1231985111/article/details/125748534