使用按位异或^进行加、解密:

加、解密都是使用该函数:

void EncryptionStr(QByteArray &data)
{static QByteArray key = "MY_KEY";for (int i = 0; i < data.size(); i++){data[i] = data[i] ^ key[i % key.size()];}
}

发现该加密函数无法对中文进行加密,原因是含有中文每个字符在不同编码格式所占字节数不同。所以将该字符串转为宽字节(每个字符占两个字节),处理后在转换utf8(我的项目使用utf8字符编码).

QString EncryptionStr(QString str)
{std::wstring wString = str.toStdWString();static QByteArray key = "MY_KEY";for (int i = 0; i < wString.size(); i++){wString[i] = wString[i] ^ key[i % key.size()];}return QString::fromStdWString(wString).toUtf8();
}

备注:此处加密key中的字符在加密相同的字符时会产生异常,比如用key="MY_KEY" 来加密MY_KEY加密过后的密文是为空的,因为在异或操作的时候,相同的值结果为0,所以加密过后密文是“\0”为字符串的结束符,导致加密异常。

解决方法:就是将key中字符串的值设置为明文中没有的字符,比如¥~等特殊字符。

QT对字符串简单加、解密相关推荐

  1. 【综合】简单加解密——寻找序列号

    [综合]简单加解密--寻找序列号 下面文字对你可能有用(复制+粘贴): #include <stdlib.h> #include <string.h> #include &qu ...

  2. Python实现文件简单加解密

    目录 一.基础知识 二.加解密算法 1.导入运行库 2.定义生成密钥函数 3.定义加解密单元 4.加密文件 5.解密文件 三.测试 一.基础知识 python中的异或操作符为 ^ ,也记作XOR,按位 ...

  3. rsa加解密 --- jsencrypt.min.js --- 支持长字符串分段加解密

    前端 + rsa加解密 + jsencrypt.min.js–(新增超长字符分段加解密) 分享2种,分段 和 不分段 加解密 --话不多说,直接上代码!~ 最终效果: 首先引入2个js <scr ...

  4. android 文本 加密解密,Android文件简单加解密

    前言 在Android应用开发中,有时需要把一些内容以文件的方式保存到sdcard上,这时我们需要考虑数据的安全性,这就涉及到文件的加解密,这里简单介绍一种文件的加解密实现方法. 实现方案 我们在读写 ...

  5. java 字符串 加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法62616964757a686964616fe4b893e5b19e31333363376462,实例如下: package test; import ...

  6. Excel VBA 编程技巧系列(一)替换字符串、加解密字符串和等待外部程序完成

    目录 1. 执行多个字符串替换 2. 退出当前程序并让 VBA 代码等待该外部应用程序完成 3. 加.解密码字符串 1. 执行多个字符串替换 如何轻松执行多个字符串替换? 当用唯一的字符串去替换一个或 ...

  7. java 字符串加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法,实例如62616964757a686964616fe59b9ee7ad9431333337616636下: package test; import ...

  8. 使用openssl开源AES算法,实现aes、aes-cbc和aes-ecb对字符串的加解密

    注意事项 对于用户输入的密码进行了md5运算,从而保证数据格式的统一性 内部调用的随机函数,参考我的其他博文 参考链接 头文件crypto_util.h #pragma once#include &l ...

  9. 华为机试HJ29: 字符串加解密

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 1.对输入的字符串进行加解密,并输出. 2.加密方法为: 当内容是英文字母时则用该英 ...

  10. AES方式加解密的简单介绍

    上面一篇文章介绍了使用DES方式进行加解密( DES方式加解密的简单介绍),我们说了DES由于使用8个字节(64bit)密钥进行加解密,所以安全性不够(当然这里的不够都是相对的),所以现在使用了密钥更 ...

最新文章

  1. C语言之计算大数阶乘,如计算100!和1000!等~~~
  2. 【Linux】一步一步学Linux——newgrp命令(91)
  3. 【计算机组成原理】存储器简述
  4. usaco Cow Tours
  5. 从java到C++入门
  6. vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
  7. mvc5 新手入门--ASP.NET MVC5中View-Controller间数据的传递
  8. eclipse 设置和快捷键
  9. 用python表白代码_使用Python制作表白小程序
  10. Severstal: Steel Defect Detection竞赛
  11. 2018年,Facebook没倒闭是个奇迹
  12. 『Python』matplotlib的imshow用法
  13. 化妆行业网站建设方案
  14. jOOQ是如何设计事务API(详细指南)
  15. 在国内发展,有IPMP证书有用吗?
  16. ONVIF 视频对接,ODM无法显示NVT
  17. 格灵深瞳赵勇:计算机视觉在安防、交通、机器人、无人车等领域的应用
  18. 计算机相关知识培训新闻稿,不忘初心 磨砺自我 ——计算机学院团委培训顺利进行...
  19. Vue 世界地图 七大洲mark标记效果
  20. 新生儿不建议吃鱼肝油,这些你知道吗

热门文章

  1. HTML5 拖放(Drag 和 Drop)(stage1-39)
  2. 3D建模之ZBrush雕刻教程,神奇上尉角色建模教程,看完你“学废”了吗?
  3. linux企业版as,Redhat 企业版 LINUX AS5.0 下载地址
  4. 【经验】CCF CSP认证问题
  5. 现代制造技术——金属切削原理
  6. Detours库使用与原理分析
  7. mysql 5.6 cmake 参数_编译cmake MySQL 5.6.10报错
  8. 你所学的专业是怎么回事——摄影测量与遥感
  9. java利用poi为excel添加图片水印
  10. html百度地图导航起点默认定位位置,百度地图如何设置起点