QT 对QString简单地加密、解密

    通过异或操作,对于字符串进行简单地加密,然后可以使用同一个函数进行解密,算法简单,是用于简单地加密解密,不适合严格的项目。

void Test::xorData(QByteArray &data)
{
    static QByteArray key1 = "myprivatekey";
    static QByteArray key2 = "helloworld";
    for(int i = 0; i < data.size(); ++i)
    {
        int keyIndex1 = i % key1.size();
        int keyIndex2 = i % key2.size();
        data[i] = data[i] ^ key1[keyIndex1];
        data[i] = data[i] ^ key2[keyIndex2];
    }
}

    


Qt 中实现 MD5 加密可以使用 Qt 的 `QCryptographicHash` 类。该类提供了一组静态函数来计算各种哈希(散列)算法,包括 MD5。 示例代码: ``` #include <QCoreApplication> #include <QDebug> #include <QCryptographicHash> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString input = "Hello World"; QByteArray hash = QCryptographicHash::hash(input.toUtf8(), QCryptographicHash::Md5); QString hashStr = QString(hash.toHex()); qDebug() << "MD5 hash of" << input << "is" << hashStr; return a.exec(); } ``` 在 Qt 中实现 AES 加密解密可以使用第三方,如 `QAESEncryption`。可以通过 `qpm` 包管理器轻松安装。 示例代码: ``` #include <QCoreApplication> #include <QDebug> #include <QAESEncryption> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString input = "Hello World"; QString key = "MySecretKey"; QString iv = "MyInitializationVector"; QByteArray encrypted = QAESEncryption::Crypt(QAESEncryption::AES_256, QAESEncryption::ECB, input.toUtf8(), key.toUtf8(), iv.toUtf8()); QString encryptedStr = QString(encrypted.toBase64()); qDebug() << "Encrypted text of" << input << "is" << encryptedStr; QByteArray decrypted = QAESEncryption::Decrypt(QAESEncryption::AES_256, QAESEncryption::ECB, QByteArray::fromBase64(encryptedStr.toUtf8()), key.toUtf8(), iv.toUtf8()); QString decryptedStr = QString(decrypted); qDebug() << "Decrypted text of" << encryptedStr << "is" << decryptedStr; return a.exec(); } ``` 注意:使用加密算法时需要保护密钥和初始化向量(IV),因为这些信息可以用于解密数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值