这里提供两种加解密的方法。
第一种方法:使用QByteArray的toBase64和fromBase64来实现。
第二种方法:使用base64.cpp文件中的base64_encode和base64_decode来实现。下载地址

代码示例如下:

#ifndef WIDGET_H
#define WIDGET_H#include <QtWidgets>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;QPushButton* m_encryptbtn;QPushButton* m_decryptbtn;QLineEdit* m_encryptedit;QLineEdit* m_decryptedit;
};
#endif // WIDGET_H

.cpp

#include "widget.h"
#include "ui_widget.h"
#include "mycrypto.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);m_encryptbtn = new QPushButton("encrypt",this);m_decryptbtn = new QPushButton("decrypt",this);m_decryptedit = new QLineEdit(this);m_encryptedit = new QLineEdit(this);QGridLayout* lay = new QGridLayout(this);lay->addWidget(m_encryptedit,0,0,1,1);lay->addWidget(m_decryptedit,0,1,1,1);lay->addWidget(m_encryptbtn,1,0,1,1);lay->addWidget(m_decryptbtn,1,1,1,1);this->setLayout(lay);connect(m_encryptbtn,&QPushButton::clicked,this,[=](){
#if 0 //方法一m_decryptedit->setText(m_encryptedit->text().toLocal8Bit().toBase64());
#else //方法二m_decryptedit->setText(MyCrypto::encrypt(m_encryptedit->text().toStdString()).data());
#endif});connect(m_decryptbtn,&QPushButton::clicked,this,[=](){
#if 0m_encryptedit->setText(QByteArray::fromBase64(m_decryptedit->text().toLocal8Bit()));
#elsem_encryptedit->setText(MyCrypto::decrypt(m_decryptedit->text().toStdString()).data());
#endif});
}Widget::~Widget()
{delete ui;
}

.h

#ifndef MYCRYPTO_H
#define MYCRYPTO_H#include <QString>
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <QDataStream>class MyCrypto
{
public:static const std::string encrypt(const std::string & orignal);static const std::string decrypt(const std::string & orignal);
};#endif // MYCRYPTO_H

.cpp

#include "mycrypto.h"
#include <QString>
#include <QDebug>
#include <iostream>
#include <bitset>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cctype>
#include <string>
#include <base64.h>
using namespace std;/*** @brief MyCrypto::encrypt  加密* @param orignal* @return*/
const std::string MyCrypto::encrypt(const std::string &orignal)
{std::string encoded = base64_encode(reinterpret_cast<const unsigned char*>(orignal.c_str()), orignal.length());return encoded;
}/*** @brief MyCrypto::decrypt 解密* @param orignal* @return*/
const std::string MyCrypto::decrypt(const std::string &orignal)
{std::string decoded = base64_decode(orignal);return decoded;
}

qt base64加解密相关推荐

  1. Flex中的Base64加解密

    Flex中的Base64加解密 Flex sdk3就内置了Base64的加/解密工具类 分别是 mx.utils.Base64Encoder mx.utils.Base64Decoder Base64 ...

  2. java base64 加解密_java Base64加解密

    import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64Util { public stati ...

  3. linux下C++base64加解密与图片互转

    最近由于工作需要,需要处理由http传来的base64图片数据,特此做下记录也希望能帮到更多的朋友. 部分内容参考Andy____Li 的blog: https://blog.csdn.net/m0_ ...

  4. Jmeter接口请求Base64加解密

    jmeter 对报文进行Base64加解密心得.        业务需求是,对接口进行测试,但需要对报文进行加密,对返回的密文进行解密.        遇到的问题:接口传的报文字段,因为没有加密,所以 ...

  5. java实现加密———Base64加解密

    java实现Base64加解密 @Testpublic void test01() throws Exception {String name = "LuWenMenHu";Str ...

  6. PB实现BASE64加解密

    文章目录 实例 文本加解密 文件加解密 源代码 实例 文本加解密 1.加密文本:PB实现BASE64加解密 得到的密文为:UELlrp7njrBCQVNFNjTliqDop6Plr4Y= 2.解密文本 ...

  7. 【安全算法之base64】base64加解密的C语言源码实现

    最近,有项目中需要用到base64的加解密,所以用C语言实现了一遍,测试效果还不错,代码量和RAM消耗都比较低,可以提供给大家参考下. #include <stdbool.h> #incl ...

  8. golang RSA base64 加解密 签名验签

    1.秘钥.加密/签名字符串加密的格式 目前主要见到有hex及base64 (1)hex 针对hex的加解密 import ("encoding/hex" ) hex.DecodeS ...

  9. Base64加解密实现

    文章目录 一.说明 1.base64 2.转换的思路 加密思路 解密思路 二.术语和参考资料 ASCII对照表 Base64表 三.整体设计 类接口 四.示例 1.对字符'j'进行加密 2.对&quo ...

最新文章

  1. css超过两行显示为..._使用这些不太常用的CSS属性,布局效率上又提高了一个层次...
  2. redis geohash 学习笔记
  3. linux 下 iscsi的简单使用
  4. C与CPP 在线手册查找
  5. CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置
  6. eclipse启动tomcat 404
  7. IDEA Maven的下载和配置
  8. memcache_engine + memcachedb = 高性能分布式内存数据库
  9. (TOJ1531)爱的伟大意义
  10. 在Zuul中设置服务访问限流
  11. Memcache 查看列出所有key的方法
  12. 【数据分析方法论】关于思维、营销、咨询、绩效管理的一些经典分析框架
  13. 文件或目录损坏且无法读取android studio
  14. 帝搜软件新功能发布:知乎关键词seo排名优化上线
  15. googleapis.com替换CDN
  16. USACO2008游荡的奶牛
  17. 稀疏数组练习demo 数据结构和算法
  18. css实现背景图片的毛玻璃效果
  19. 记一次漫长的蓝屏处理过程
  20. debian配置网卡

热门文章

  1. 如何正确的设置使用代理IP?
  2. 微信企业号开发实例源码
  3. 中科院院士!南京大学,迎来新校长
  4. flash与PHP的交互技巧
  5. FACTORY 模式
  6. canvas标签设置长宽
  7. border-radius详解分享
  8. 网络营销与推广手法探秘
  9. python 重复图片_删除重复文件或图片(去重)的python代码
  10. STRING:蛋白质相互作用(PPI网络)数据库简介