https://github.com/bricke/Qt-AES
下载下来后,将对应的源码拷贝到项目中就可以了。
一个简单的事例:
QString key = "0123456789012345";
qDebug() << "key.size : " << key.toUtf8().size();
QString string = "Hello World Are you zheng";
QByteArray src=string.toUtf8().mid(0,17); // 不足16字节或是大于16字节(不是16字节的倍数),会进行补位
qDebug()<<"src.length="<<src.length();
QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::ISO);
QByteArray enBA = encryption.encode(src, key.toUtf8());
QByteArray enBABase64 = enBA.toBase64();
qDebug() << "string : " << string;
qDebug() << "enBA.length= " << enBA.length();
qDebug() << "enBA.ByteArray= " << enBA;
qDebug() << "enBA : " << enBABase64;
enBA = QByteArray::fromBase64(enBABase64);
//enBA= encryption.removePadding(enBA); 加密之后无法去除补位,只有解密后才能去除补位
qDebug()<<"enBA.length="<<enBA.length();
QByteArray deBA = encryption.decode(enBA, key.toUtf8());
QByteArray deBA_rmPad= encryption.removePadding(deBA); // 解密后需要执行去除补位操作,如果没有补位内容不变
qDebug()<<"deBA.String="<<QString::fromUtf8(deBA_rmPad);
//移除填充
qDebug() << "deBA : " << QAESEncryption::RemovePadding(deBA, QAESEncryption::ISO);