一.QT实现ASCII码值改变,来修改字符,实现简单加密

原作者这种思路可以学习一下

QT版本:Qt 5.5.1 (MSVC 2013, 32 bit)
Qt Creator版本:Qt Creator 3.5.1 (opensource)
系统:win10

假设有这样一个场景,一个软件的用户帐号个数很少,我们为了方便就将用户帐号和密码存放在配置文件中,但是又不能直接将密码以明文的方式写在配置文件里,需要做一个简单的加密。
我是这样实现的:
1.密码存放在QString变量strPw中
2.将strPw转成utf-8 编码格式,放在QByteArray baPw中
3.将baPW的每一位以字节的方式加或者乘以一个固定的变量,然后重新赋值给strPw
4.将strPw保存到配置文件中

加密代码如下:

QByteArray baPw = strPw.toUtf8();
for (int i = 0;i<baPw.size();i++)
{baPw[i] = baPw[i]+66;//加密User1的密码
}
strPw = baPw;
settings->setValue("User1key",strPw);

解密代码如下:

QSettings *settings=new QSettings(m_sIniFilePath,QSettings::IniFormat);//m_sIniFilePath为配置文件的路径
QString strPw = settings->value("User1key").toString();//从配置文件中读取账户User1的密码
QByteArray baPw = strPw.toUtf8();
for (int i = 0;i<baPw.size();i++)
{baPw[i] = baPw[i]-66;//解密User1的密码
}
strPw = baPw;

二.std::string 实现

std::string 可以直接以下标的形式访问单个字符,并且支持 + - 操作改变ASCII码值

std::string str = "qazwsx";
str[2] = str[2] + 5;

三.QT密码输入框

QT的编辑控件QLineEdit 本身支持基本的 密码输入框功能,如果有自定义的行为,可以继承QLineEdit重写部分操作,或者添加部分操作,基本的密码输入 隐藏与显示功能使用如下:

添加一个QCheckBox 选择控件,勾选则显示密码,不勾选则默认为黑色圆点

if(ui.checkBox.isChecked())
{ui.lineEdit_2->setEchoMode(QLineEdit::Normal);   //显示密码
}
else
{ui.lineEdit_2->setEchoMode(QLineEdit::Password);   //隐藏密码
}

Qt实现简单的密码加密相关推荐

  1. 简单混淆密码加密和解密

    最近项目比较多,就很少写文章.随着项目的收尾.时间也开始比较充裕起来了. 我们在编程过程当中.经常遇见到算法,那到底什么是算法呢. 比方:如果我把密码加密存到数据库,读取的时候再解密还原. 这个过程就 ...

  2. Python 简单数据/密码加密方法

    # 简单数据加密""" 加密方法:1.获取所有字符ASCII码,进行累加2.拼接所有字符ASCII码,顺序拼接3.把顺序拼接的ASCII码,倒序排列4.把倒序排列的ASC ...

  3. 简单的MD5密码加密和解密方法

    MD5的算法是不可逆的,MD5被广泛用于密码验证和消息体完整性验证. 下面的例子用到了密码加密和登陆时的解密的基本方法.当然这样很容易被暴力破解,可以做其他改进,如先设计一个足够复杂的密码,然后将他的 ...

  4. 简单移位密码——凯撒加密、解密算法

    简单移位密码--凯撒加密.解密算法 移位密码是简单的替换密码(simple substitution cipher),即将明文的一个字符用相应的一个密文字符替换. 算法描述:设P=C=K=Z26,对k ...

  5. java绕过加密密码_Java实现简单密码加密功能

    本文实例为大家分享了Java实现简单密码加密案例,供大家参考,具体内容如下 需求: 首先将一组数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换. 请任 ...

  6. 搭建图片加密平台,扫码支付后简单获取密码

    搭建图片加密平台,扫码支付后简单获取密码 很多人问我,互联网上到底做什么项目是可以赚到钱的?没有基础,不懂技术,不会推广,所以有没有简单一点的,一操作就能上手就能赚钱的?我可以很肯定的告诉你:没有. ...

  7. SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!

    这里写目录标题 一.演示GIF 二.开发前期准备 1.数据库 2.依赖POM.XML 3.idea结构目录 三.后端 1.实体类 2.mapper接口 3.mapper.xml 4.Servicce接 ...

  8. Sha1加密是不可逆的,网上虽然有解密的方法,但只能解密很简单的密码

    今天又踩了个坑,原因是我打算写一个密码管理工具,把密码加密存入excel中,一开始不知道sha1不能解密,所以在网上找了半天sha1解密的方法,最终在一个论坛中发现sha1是不可逆算法,只能加密,很难 ...

  9. 用户密码加密存储十问十答,一文说透密码安全存储

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 程序员赵鑫 来源 | cnblogs.com/xinzh ...

  10. 如何在 Linux 上用密码加密和解密文件

    age 是一个简单的.易于使用的工具,允许你用一个密码来加密和解密文件.age 能帮你这样做.它是一个小型且易于使用的工具,允许你用一个密码加密一个文件,并根据需要解密. age 是一个简单的.易于使 ...

最新文章

  1. 你面试稳了!通关LeetCode刷题完整攻略,省时又高效
  2. Java内存使用量测试 看看我们天天在用的JVM到底浪费了多少内存资源
  3. FatFs文件系统的移植
  4. Oracle 11g安装与使用
  5. python两数求和_Python两数相加实现
  6. 三、mongodb数据库系列——mongodb和python交互 总结
  7. 小程序文章怎么导出来_微信小程序点餐怎么申请,怎么建立微信点单小程序
  8. CSDN的C1-见习工程师能力认证相关知识(框架)
  9. 每日一问。2015.1.8
  10. Pandas 日期处理:生成及去除工作日与节假日
  11. java计算机毕业设计自动化办公系统源码+mysql数据库+系统+lw文档+部署
  12. Editplus下载安装
  13. PBR中引入IBL——漫反射篇
  14. matlab simulink的constant模块
  15. SqlParameter应用实例 实验日记
  16. sourcetree 与 命令对比
  17. Bugku 杂项 细心的大象
  18. 搞不懂单相异步电动机?深度解读单相异步电动机工作原理
  19. 杨幂 AI 换脸:你上传的照片,正在出卖你!
  20. 条件测试 linux,linux系统中条件测试语句

热门文章

  1. python分析html文件_如何用Python解析HTML?
  2. 输入的字与系统编码不符_伺服系统故障排除法
  3. php可以写无缝轮播图吗,怎样用css实现无缝轮播图切换?
  4. pyqt5 qwidget有父类窗口如何设置模态_实战PyQt5: 024-Qt Designer进阶一
  5. 循环map 取得键和值_Java 从 Map 到 HashMap 的一步步实现
  6. python13文件_python中13个实用的文件操作
  7. wcf 双向 java_我的WCF之旅 (11): 再谈WCF的双向通讯-基于Http的双向通讯 V.S. 基于TCP的双向通讯...
  8. Java基础(四):异常处理
  9. django-rest-framework二--权限(转载)
  10. SQLSERVER的递归