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

点击(此处)折叠或打开

  1. #include <QtCore/QCoreApplication>
  2. #include <QTextCodec>
  3. #include <QString>
  4. #include <QDebug>
  5. QString getXorEncryptDecrypt(const QString &, const char &);
  6. QString byteToQString(const QByteArray &byte);
  7. QByteArray qstringToByte(const QString &strInfo);
  8. int main(int argc, char *argv[])
  9. {
  10. QCoreApplication a(argc, argv);
  11. QString str = QString("http://www.baidu.com?id=1");
  12. QString jiami = getXorEncryptDecrypt(str, 11);
  13. qDebug() << "str:" << str;
  14. qDebug() << "miwen:" << jiami;
  15. QString jiemi = getXorEncryptDecrypt(jiami, 11);
  16. qDebug() << "jimi:" << jiemi;
  17. return a.exec();
  18. }
  19. QString getXorEncryptDecrypt(const QString &str, const char &key)
  20. {
  21. QString result;
  22. QByteArray bs = qstringToByte(str);
  23. for(int i=0; i<bs.size(); i++){
  24. bs[i] = bs[i] ^ key;
  25. }
  26. result = byteToQString(bs);
  27. return result;
  28. }
  29. QString byteToQString(const QByteArray &byte)
  30. {
  31. QString result;
  32. if(byte.size() > 0){
  33. QTextCodec *codec = QTextCodec::codecForName("utf-8");
  34. result = codec->toUnicode(byte);
  35. }
  36. return result;
  37. }
  38. QByteArray qstringToByte(const QString &strInfo)
  39. {
  40. QByteArray result;
  41. if(strInfo.length() > 0){
  42. QTextCodec *codec = QTextCodec::codecForName("utf-8");
  43. result = codec->fromUnicode(strInfo);
  44. }
  45. return result;
  46. }

testXorJiami$ ./testXorJiami
str: "http://www.baidu.com?id=1" 
miwen: "c^?^?{1$$|||%ijbo~%hdf4bo6:" 
jimi: "http://www.baidu.com?id=1"

 xorEncryptDecrypt.rar  

Qt使用异或进行加密解密的更多相关文章

  1. php异或加密解密算法的实现

    function xor_enc($str,$key) { $crytxt = ''; $keylen = strlen($key); for($i=0;$i<strlen($str);$i++ ...

  2. java 加密解密工具类(实用!!!)

    最近发现了一个加密解密的好例子,很方便使用,可以作为平时开发的工具集,记录一下. package com.sh.springboottdemo2.util; import com.sun.org.ap ...

  3. PHP 简单的加密解密算法

    <?php /** * * @创建时间:2015-3-12 下午2:07:33 * @作者:YuMing * @描述:异或加密解密类 */ class Yihuo extends CI_Cont ...

  4. 从网上整理的一些delphi字符串加密解密方法

    function Encode(Str: string): string; var //加密 TmpChr: AnsiChar; i, Len: integer; begin Result := St ...

  5. Delphi加密解密算法

    // 加密方法一(通过密钥加密解密)function EncryptString(Source, Key: string): string;function UnEncryptString(Sourc ...

  6. c# 如何利用异或运算进行简单加密解密

    利用“^”异或运算对字符串进行加密 原理:按位做“异或”运算是->位值相同得1,不同得0,如下计算 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0 例如: < ...

  7. 如何通过php 使用异或(XOR)加密/解密文件

    laravel代码如下: /** * @param $q * @param $k * @return string 异或加解密 */ public function jiajiemi($q,$k){ ...

  8. [PHP]加密解密函数

    非常给力的authcode加密函数,Discuz!经典代码(带详解) function authcode($string, $operation = 'DECODE', $key = '', $exp ...

  9. .NET/android/java/iOS AES通用加密解密(修正安卓)

    移动端越来越火了,我们在开发过程中,总会碰到要和移动端打交道的场景,比如.NET和android或者iOS的打交道.为了让数据交互更安全,我们需要对数据进行加密传输.今天研究了一下,把几种语言的加密都 ...

随机推荐

  1. git删除未跟踪文件

    # 删除 untracked files git clean -f   # 连 untracked 的目录也一起删掉 git clean -fd   # 连 gitignore 的untrack 文件 ...

  2. 【转】深入理解篇UIScrollerView

    转自:http://www.mamicode.com/info-detail-1144770.html 接下来,我整理一下自己的思路,深入理解 UIScrollView 基本点 : 1 . UIScr ...

  3. C# XML 根级别上的数据无效

    XmlDocument加载xml方法 XmlDocument doc = new XmlDocument(); //加载xml 字符串 doc.LoadXml(_Store); //加载xml文件 d ...

  4. Android打开外部DB文件

    DB文件要放在Assets文件夹下,封装一个工具类,如下: package com.XX.DB; import java.io.File; import java.io.FileOutputStrea ...

  5. 多种下载文件方式 Response.BinaryWrite(byte[] DocContent);Response.WriteFile(System.IO.FileInfo DownloadFile .FullName);Response.Write(string html2Excel);

    通过html给xls赋值,并下载xls文件 一.this.Response.Write(sw.ToString());System.IO.StringWriter sw = new System.IO ...

  6. 控制反转IOC与依赖注入DI【转】

    转自:http://my.oschina.net/1pei/blog/492601 一直对控制反转.依赖注入不太明白,看到这篇文章感觉有点懂了,介绍的很详细. 1. IoC理论的背景我们都知道,在采用 ...

  7. C++ 虚函数详解

    C++ 虚函数详解 这篇文章主要是转载的http://blog.csdn.net/haoel/article/details/1948051这篇文章,其中又加入了自己的理解和难点以及疑问的解决过程,对 ...

  8. SQL学习笔记——SQL中的数据查询语句汇总

    where条件表达式 --统计函数 Select count(1) from student; --like模糊查询 --统计班上姓张的人数 select count(*) from student ...

  9. 02—从Cocos2DX视角看游戏组成

    Cocos2DX引擎按照层次逻辑将游戏元素细分为:导演CCDirector.场景CCScene.图层CCLayer.精灵CCSprite.在上面篇中我们已经知道除导演CCDirector外都继承了CC ...

  10. JavaScript可否多线程? 深入理解JavaScript定时机制(转载)

    说明:最近写 js 时需要用setinterval函数做定时操作,谁知道,刚开始后运行完好,但一段时间后他就抽风了,定时任务运行的时间间隔越来越短,频率加快,这是一个完全不能容忍的问题,带着一个可以出 ...