在加密,解密中,异或运算应该时比较简单的一种。下面的代码,采用异或运算进行加密,解密:

点击(此处)折叠或打开

  • #include <QtCore/QCoreApplication>
  • #include <QTextCodec>
  • #include <QString>
  • #include <QDebug>
  • QString getXorEncryptDecrypt(const QString &, const char &);
  • QString byteToQString(const QByteArray &byte);
  • QByteArray qstringToByte(const QString &strInfo);
  • int main(int argc, char *argv[])
  • {
  •     QCoreApplication a(argc, argv);
  •     QString str = QString("http://www.baidu.com?id=1");
  •     QString jiami = getXorEncryptDecrypt(str, 11);
  •     qDebug() << "str:" << str;
  •     qDebug() << "miwen:" << jiami;
  •     QString jiemi = getXorEncryptDecrypt(jiami, 11);
  •     qDebug() << "jimi:" << jiemi;
  •     return a.exec();
  • }
  • QString getXorEncryptDecrypt(const QString &str, const char &key)
  • {
  •   QString result;
  •   QByteArray bs = qstringToByte(str);
  •   
  •   for(int i=0; i<bs.size(); i++){
  •     bs[i] = bs[i] ^ key;
  •   }
  •   
  •   result = byteToQString(bs);
  •   return result;
  • }
  • QString byteToQString(const QByteArray &byte)
  • {
  •   QString result;
  •   if(byte.size() > 0){
  •     QTextCodec *codec = QTextCodec::codecForName("utf-8");
  •     result = codec->toUnicode(byte);
  •   }
  •   
  •   return result;
  • }
  • QByteArray qstringToByte(const QString &strInfo)
  • {
  •   QByteArray result;
  •   if(strInfo.length() > 0){
  •     QTextCodec *codec = QTextCodec::codecForName("utf-8");
  •     result = codec->fromUnicode(strInfo);
  •   }
  •   
  •   return result;
  • }
  • testXorJiami$ ./testXorJiami
    str: "http://www.baidu.com?id=1" 
    miwen: "c^?^?{1$$|||%ijbo~%hdf4bo6:" 
    jimi: "http://www.baidu.com?id=1"

    Qt使用异或进行加密解密 xorEncryptDecrypt.rar   

    相关文章:

    • 2021-09-14
    • 2021-10-23
    • 2022-12-23
    • 2022-12-23
    • 2021-04-13
    • 2021-06-10
    • 2022-12-23
    • 2022-12-23
    猜你喜欢
    • 2021-04-21
    • 2022-12-23
    • 2022-12-23
    • 2022-12-23
    • 2021-10-15
    • 2021-12-17
    • 2021-12-27
    相关资源
    相似解决方案