Qt使用异或进行加密解密

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

点击(此处)折叠或打开

  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

时间: 2024-10-12 14:19:46

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

异或运算实现加密解密

异或运算中,如果某个字符(或数值)x 与 一个数值m 进行异或运算得到y,则再用y 与 m 进行异或运算就可以还原为 x ,因此应用这个原理可以实现数据的加密解密功能. 异或运算在java中通常有两个比较常用的方法,一个是两个变量的互换(不借助第三个变量),一个便是数据的简单加密解密. 两个变量的互换 java运算中,如果要交换两变量的值,通常的做法就是借助第三个临时变量,然后完成操作. 如 public static void main(String[] args) { int[] arr =

C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应位其中一个为1另一个为0,则返回1. //对数字加密 int P_int_Num, P_int_Key;//定义两个值类型变量 string Encryptstr = (P_int_Num ^ P_int_Key).ToString();//加密数值 //对数字解密 int P_int_Key, P_int_

DES加密解密算法

DES加密解密算法 // 仿射变换加解密.cpp : 定义控制台应用程序的入口点. // #include <stdio.h> #include <conio.h> static char key[10], key_a[5], code[8], key_b[5], temp[10], key_aa[8], key_bb[8], l[4], r[4], l_a[4], r_a[4], V[8] = { 0, 1, 0, 1, 0, 1, 0, 1 }, b[8]; char Code

加密解密大汇总

在项目开发中,出于系统安全考虑,我们总会想到使用加密解密进行处理.首先保证的一点就是数据被窃取后,不能使其正常阅读.其次,就是防止接口随意调用. (PS:鄙人目前就想到了这两点好处,如果还有什么优点,欢迎给位补充o(^▽^)o) 接下来就说几个常用的加密算法:DES加密算法,AES加密算法,RSA加密算法,Base64加密算法,MD5加密算法,SHA1加密算法 1.DES加密算法 加密方式---- 使用异或,置换,代换,移位四种基本运算进行16轮循环加密而成. 共分为一般加密和三重加密>> D

php加密解密函数

转自:http://www.jb51.net/article/51706.htm 很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会带来安全隐患,因此通过可逆加密后再保存到cookies相对就安全了 项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理.最常见的应用在用户登录以及一些API

.NET/andriod/java/iOS AES通用加密解密

移动端越来越火了,我们在开发过程中,总会碰到要和移动端打交道的场景,比如.NET和android或者iOS的打交道.为了让数据交互更安全,我们需要对数据进行加密传输.今天研究了一下,把几种语言的加密都实践了一遍,实现了.NET,java(andriod),iOS都同一套的加密算法,下面就分享给大家. AES加密有多种算法模式,下面提供两套模式的可用源码. 加密方式: 先将文本AES加密 返回Base64转码 解密方式: 将数据进行Base64解码 进行AES解密 一.CBC(Cipher Blo

谈谈异或加密

0. 前言 本文包括如下几个内容: 异或算法 异或加密 两个整数交换问题 1. 异或算法 异或是数字逻辑中的基本概念,也是每种编程语言都支持的基本运算.基本原理就是,对于数字1和0有如下的运算公式: 1 ^ 1 = 0 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 很自然地,这个运算可以扩展到一长串码流上. 更常见的是字节一级或整数的异或运算,可以参考相应的编程语言的相关介绍. 2. 异或加密 异或加密是最简单的一种加密方法,简单来讲,假定有一串码流A,然后可以用key进行加密,把

DES加密解密的C++源程序

DES加密解密的C++源程序 --测试版本,希望大家多多交流 #include<iostream.h> #include"stdio.h" #include"math.h" #include "string.h" static char key[16][48]; static char Hex[16][4]; ////IP置换. int IP[64]= { 58,50,42,34,26,18,10,2,\ 60,52,44,36,28

2个比较经典的PHP加密解密函数分享

项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些API数据交换的场景. 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家.加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果. 1.非常给力的authcode加密函数,Discuz!经典代码(带详解): function authcode($string, $