最近在捣鼓c++的qt的app爬虫方向了,有个参数通过了AES加密,用python写的爬虫很容易跑通,接下来使用QT来实现加密过程,通过资料查询,发现IT1995 的博主写了相关的博客,他们使用第三方写好的包来进行加密,很方便,我们可以直接拿来用,不用重复造轮子,github地址为https://github.com/bricke/Qt-AES 。直接下载压缩包即可。解压后如图所示那么如何用到我们的项目中去呢,我们先新建一个项目,如图所示一般都是默认选项的,接下来创建项目名,这里为AEStest,点击下一步,如图所示选择widget即可,然后点击完成即可,创建项目的目录如下所示然后选中项目,右键添加文件--->添加新文件,然后选择如下点击choose,类名选择QAESEncryption,如下所示,接着目录就多了qaesencryption.cpp,qaesencryption.h了,然后将你下载的文件里面的aesni文件夹拷贝到你项目的路径下如下所示,然后同样右键项目名,添加存在的文件夹,选中你拷贝过来的aesni文件夹即可。然后将你下载文件下的qaesencryption.cpp,qaesencryption.h中的代码全部复制到你项目中生成的qaesencryption.cpp和qaesencryption.h文件中去即可,接着在widget.cpp中添加代码如下所示
#include "widget.h"
#include "ui_widget.h"
#include<qaesencryption.h>
#include<QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QString key = "0123456789012345";
QString iv = "0102030405060708";
qDebug() << "key.size : " << key.toUtf8().size();
QString string = "Hello World";
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::CBC, QAESEncryption::PKCS7);
QByteArray enBA = encryption.encode(string.toUtf8(), key.toUtf8(),iv.toUtf8());
QByteArray enBABase64 = enBA.toBase64();
qDebug()<<enBABase64;
}
Widget::~Widget()
{
delete ui;
}
这里将字符string进行AES加密,我们打印下结果,如下所示为了验证结果的正确性,我们用fiddler工具来进行反向解密,如下所示完美实现!!!!
点击此处登录后即可评论