字符串AES加解密
看效果
添加文件
将AES加密文件添加到工程中去,文件下载链接如下:
https://download.youkuaiyun.com/download/qq_43638158/87451200
上代码
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "qaesencryption.h"
#include <QMessageBox>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_encyption_clicked();//加密
void on_pushButton_decrypt_clicked();//解密
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwidow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
/****************************
* 函数作用:AES加密
* 输入参数:
* 返回参数:
****************************/
void MainWindow::on_pushButton_encyption_clicked()
{
ui->plainTextEdit_ciphertext->clear();//密文文本先清空
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB , QAESEncryption::PKCS7);
QByteArray clearText = (ui->plainTextEdit_clearText->toPlainText()).toLocal8Bit();//获取明文
QByteArray key = (ui->lineEdit_key->text()).toLocal8Bit();//获取密钥
QByteArray iv = (ui->lineEdit_iv->text()).toLocal8Bit();//获取偏移量
QByteArray encodedString = encryption.encode(clearText, key,iv);//加密
ui->plainTextEdit_ciphertext->appendPlainText(encodedString.toHex());
}
/****************************
* 函数作用:AES解密
* 输入参数:
* 返回参数:
****************************/
void MainWindow::on_pushButton_decrypt_clicked()
{
ui->plainTextEdit_clearText->clear();//明文文本先清空
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB , QAESEncryption::PKCS7 );
QByteArray input = (ui->plainTextEdit_ciphertext->toPlainText()).toLocal8Bit();//获取密文
if(input.length()%16 != 0 || input.length()<32)//密文长度不正确时
{
QMessageBox::information(this, "解密失败", "请检查密文 长度 是否正确");
return;
}
else//密文长度正确
{
QByteArray decodeString = encryption.decode(input.fromHex(input),(ui->lineEdit_key->text()).toLocal8Bit(),(ui->lineEdit_iv->text()).toLocal8Bit());//解密
QByteArray decoded = QAESEncryption::RemovePadding(decodeString,QAESEncryption::PKCS7);
QString decoded1 = decoded;
ui->plainTextEdit_clearText->appendPlainText(decoded1);
}
}
借鉴该链接:https://blog.youkuaiyun.com/baidu_35259515/article/details/115294472