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

点击(此处)折叠或打开

  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. Apache与Tomcat区别联系

    监控服务(师傅让我监控Tomcat,我知道Apache,所以以为他两是一个东东.结果半天就没有找到Tomcat的服务进程,还理直气壮的说:找不到Apache......希望这篇简单的,白话分析,能让还 ...

  2. Jquery:Jquery中的事件<二>

    这几天快忙死了,办了离职还得办入职,完全打乱了我的计划,但是能有一个理想的工作,还是很开心的,以后加把劲,争取把计划再赶上来!不说了,学习!!! 五.事件对象的属性 1.event.type:获取事件 ...

  3. keydown和keypress

    常见的键盘事件是keyup和keydown.淡蓝就经常用 document.onkeyup = function (e) { if ((e.keyCode || e.which) === 13) // ...

  4. arry()数组的理解及api的使用(一)

    我们想要了解数组,首先就要先要了解到什么是数据结构,所谓的数据结构就是把数据与数据见的关系按照特定的结构来保存.设计合理的数据结构是解决问题的前提.了解了数据结构后我们下面来数组的定义:数组(arra ...

  5. (三)backbone - API学习 - v0.9.2 与 v1.1.2区别

    Backbone.View v0.9.2 中Backbone.View 可以导出对象的options属性, v1.1.2 中去掉该属性,通过如下代码 viewOptions = ['model', ' ...

  6. java下的第一个redis

    Redis支持很多编程语言的客户端,有C.C#.C++.Clojure.Common Lisp.Erlang.Go.Lua.Objective-C.PHP.Ruby.Scala,甚至更时髦的Node. ...

  7. 关于(x&y)+((x^y)>>1)的探究

    今天在程序员面试宝典上看到 int f(int x int y ) { return (x&y)+((x^y)>>1) } f(729,271) 结果为500 从式子中可以看出分为 ...

  8. JDBC中PreparedStatement和Statement的区别

    共同点: PreparedStatement和Statement都是用来执行SQL查询语句的API之一. 不同点: 在PreparedStatement中,当我们经常需要反复执行一条结构相似的sql语 ...

  9. 利用JavaScript 的formdata 进行无刷新上传文件

          <html>     <head>         <title></title>         <script type=&quo ...

  10. Yii 2.0: yii2-highcharts-widget创建饼状图

    安装 The preferred way to install this extension is through composer. 项目根目录下执行: php composer.phar requ ...