QT并没有自带的加解密工具,网上有用Qt开源加解密插件,有自己实现加解密算法功能的。
因博主之前的文章已经用C++编写过一个DES加密算法,这里就不再用QT重复一遍了。
本文介绍了在QT中运用OPENSSL开源加解密库的DES算法,和着重提醒几个容易出错的地方,其他算法的运用与此类似。
一、配置环境运用VS2014平台配置Openssl环境已经在之前讲过,如有不懂,可以
二、选择加解密模式电子密码本模式ECB
加密块链模式CBC
加密反馈模式CFB
输出反馈模式OFB
根据加密模式的不同,安全性和容错性会有差异,详细介绍请看
本文只介绍ECB的用法。
先贴出加密代码
CRYPTO_STATUS ECBCipher::DES_Encrypt(const QString cleartext, const QString key, QString& ciphertext)
{
if (cleartext.isEmpty())
{
return ENCRYPT_SUCCESS;
}
DES_cblock keyEncrypt;
memset(keyEncrypt, 0, 8);
const char* ch = key.toLatin1().data();
if (key.length() <= 8)
memcpy(keyEncrypt, key.toLatin1().data(), key.length());
else
memcpy(keyEncrypt, key.toLatin1().data(), 8);
DES_key_schedule keySchedule;
DES_set_key_unchecked(&keyEncrypt, &keySchedule);
const_DES_cblock inputText;