项目介绍


本篇文章的内容是Qt多功能计算器的第四个功能,base64的加密和解密,这可能是除对话框外,这个项目中最简单、代码量最少的界面(因为项目还没有写完,所以我不能确定这一定是最简单的界面)。

界面设计

这是界面的设计图:

控件描述 控件名称
输入框 inputBox
输出框 outputBox
加密按钮 btnEncode
解密按钮 btnDecode
控件名称 信号函数 槽函数 槽函数参数
btnEncode QPushButton::clicked() Base64::btnEncodePushed() None
btnDecode QPushButton::clicked() base64::btnDecodePushed() None
void btnEncodePushed();
void btnDecodePushed();
connect(ui->btnEncode,&QPushButton::clicked,this,[=]{Base64::btnEncodePushed();});
connect(ui->btnDecode,&QPushButton::clicked,this,[=]{Base64::btnDecodePushed();});

界面逻辑

btnDecodePushed()函数

void Base64::btnDecodePushed()
{QByteArray inputText = ui->inputBox->toPlainText().toLocal8Bit();inputText = QByteArray::fromBase64(inputText);QString outputText = QString::fromLocal8Bit(inputText);ui->outputBox->setText(outputText);
}

处理解码按钮被按下的事件,对字符串进行解码

btnEncodePushed()函数

void Base64::btnEncodePushed()
{QString inputText = ui->inputBox->toPlainText();QString outputText = inputText.toUtf8().toBase64();ui->outputBox->setText(outputText);
}

处理编码按钮被按下的事件,对字符串进行编码

知识整理

QByteArray

QByteArray与QString

  • QString是字符串类型,可以处理各国语言的编码,默认都当作utf-8编码来处理
  • QByteArray是字节流类型,对于语言,只能处理ACSII(美国信息交换标准代码)编码,也就是只能处理英语字符,如果QByteArray中有其它语言的编码,那么就会以原始字节流的形式输出
  • 相比QString,QByteArray具有更强的灵活性,在适当的地方使用可以缩短代码

QByteArray::fromBase64()函数

对QByteArray字节流进行base64解密

QString::toLocal8Bit()函数

将QString转换为字节流,返回的数据类型是QByteArray。

QString::fromLocal8Bit()函数

将字节流转换为字符串,与QString::toLocal8Bit()函数相反。

QString的base64加密

QString outputText = inputText.toUtf8().toBase64();

Qt多功能计算器(四)——base64加密和解密相关推荐

  1. php cookie 加密解密,php 使用base64加密、解密cookie的示例

    这篇文章主要为大家详细介绍了php 使用base64加密.解密cookie的示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: ...

  2. python中base64加密和解密

    base64加密和解密有点头疼,必须要记录下来,以后忘了也能再来复习下 当然啦,能一直记住是最好的-加油吧,少年(其实已经好老了) 操作环境 win10,python3 base的原理 这个还是别人讲 ...

  3. Base64加密与解密使用(+拓展:盐值法)

    1.什么是Base64 Base64是一种直接利用64位可打印字符来表示二进制数据的算法,是一种比较常见的加密算法.JDK1.8版本提供了java.util.Base64的工具类,使用Base64提供 ...

  4. Javascript Base64加密与解密

    Base64加密与解密 Base64.js function Base64() {// private property_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWX ...

  5. shell脚本:base64加密、解密字符串并赋值给变量方法

    几经波折才能够实现使用 base64 加密.解密字符串并赋值给变量.网上绝大多数是使用 echo 管道实现 加密和解密字符串的输出. 代码如下: pwd=$( base64 -d <<&l ...

  6. java base64加密与解密

    目录 前言 一.base64加密与解密 1. base64有填充的编码与解码 2. base64无填充的编码与解码 二.MIME友好型base64加密与解密 前言 Base64 编码会将字符串编码得到 ...

  7. mysql base64 加密解密_烂泥:base64加密与解密

    本文由ilanniweb微信公众号提供友情赞助,首发于烂泥行天下 jenkins技术分享QQ群:571981257 一.什么是base64 base64是网络上最常见的用于传输8Bit字节码的编码方式 ...

  8. js中实现base64加密、解密

    //base64加密 解密/* //1.加密 var result = Base.encode('125中文'); //--> "MTI15Lit5paH"//2.解密 va ...

  9. Base64加密与解密

    Base64是jdk1.8新增的加密处理类,Base64处理,在这个类里面有两个内部类 Base64.Encoder :进行加密处理   public byte[] encode(byte[] src ...

最新文章

  1. html音频从10秒播放至30秒,基于Arduino制作SD卡音乐播放器
  2. 使用Dapper持久化IdentityServer4
  3. Facade(外观)--对象结构型模式
  4. siwper vue 上下滑动分页_支持移动端的vue滑动轮播图插件vueswiper
  5. 新版Windows Live SkyDrive Beta发布
  6. windows 11屏幕保护程序配置教程——设置无效解决方案
  7. 计算机组成原理_DRAM和SRAM
  8. 网口压线顺序_网线水晶头接法口诀顺序及接法详细步骤
  9. 类名+单书名号——泛型,什么是泛型?如何使用泛型
  10. MMWHS-文献阅读(图像分割)
  11. 项目经理人才培养专题︱优秀项目经理能力建设(一)
  12. 上市公司融资约束SA测算以及结果(2000-2019)
  13. 微信小程序开发架构——JavaScript的基本概述 和 JavaScript在 Nodejs、小程序中、浏览器中的使用方法
  14. sp许可证有什么用呢?
  15. java设计中国象棋_Java课程设计—象棋
  16. WebRequest 类
  17. 新概念1、2英语学习计划
  18. IoT物联网平台「设备影子」开发实战
  19. 企业挖角 AI 教授是不是「原罪」?
  20. Android 高质量开发之崩溃优化

热门文章

  1. (Java)对象克隆技术
  2. Spring源码(十)-IOC终结篇
  3. Qt滚动区域原理(QAbstractScrollArea)
  4. 以太网,令牌网,FDDI,ATM,WLAN的区别
  5. 事件监听函数addEvent
  6. 汽车芯片短缺潮“拐点”已至?下一波“网络安全”升级战悄然开始
  7. 【shell脚本开发技术】linux中shell script脚本开发编程常用命令与脚本速记指南
  8. iWO联通3G详单及套餐使用情况查询工具)更新至v0.8.4
  9. amtemu v0.9.2怎么用_怎么样用手机玩暗黑2(电脑PC游戏)
  10. NSTextField 处于编辑状态时,点击return键 结束编辑,NSButton的return快捷方法不响应