QT使用异或加密算法进行加密解密

转载自:https://blog.csdn.net/imbegood/article/details/77771273
Xor.h:

#ifndef XOR_H
#define XOR_H


#include 'QObject'
#include 'QString'
#include 'QByteArray'
#include 'QTextCodec'


class Xor : public QObject
{
    Q_OBJECT
public:
    explicit Xor(QObject *parent = 0);
    ~Xor();
    QString XorEncryptDecrypt(const QString &, const char &);


private:
    QString byteToQString(const QByteArray &byte);
    QByteArray qstringToByte(const QString &strInfo);


};


#endif // XOR_H
 
 

Xor.cpp:

#include "xor.h"
 
Xor::Xor(QObject *parent) : QObject(parent)
{
 
}
 
Xor::~Xor()
{
 
}
 
QString Xor::XorEncryptDecrypt(const QString &str, const char &key)
{
    QString result;
    QByteArray bs = this->qstringToByte(str);
    int i;
    for(i=0; i<bs.size(); i++)
    {
      bs[i] = bs[i] ^ key;
    }
 
    result = byteToQString(bs);
    return result;
}
 
QString Xor::byteToQString(const QByteArray &byte)
{
    QString result;
    if(byte.size() > 0)
    {
      QTextCodec *codec = QTextCodec::codecForName("utf-8");
      result = codec->toUnicode(byte);
    }
 
    return result;
}
 
QByteArray Xor::qstringToByte(const QString &strInfo)
{
    QByteArray result;
    if(strInfo.length() > 0)
    {
      QTextCodec *codec = QTextCodec::codecForName("utf-8");
      result = codec->fromUnicode(strInfo);
    }
 
    return result;
}
 

主函数:

QString str = QString("Hello World!");
QString jiami = getXorEncryptDecrypt(str, 12);
qDebug() << "str:" << str;
qDebug() << "Encrypto:" << jiami;
QString jiemi = getXorEncryptDecrypt(jiami, 12);
qDebug() << "Decrypto:" << jiemi;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值