qt base64加解密
这里提供两种加解密的方法。
第一种方法:使用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加解密相关推荐
- Flex中的Base64加解密
Flex中的Base64加解密 Flex sdk3就内置了Base64的加/解密工具类 分别是 mx.utils.Base64Encoder mx.utils.Base64Decoder Base64 ...
- java base64 加解密_java Base64加解密
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Base64Util { public stati ...
- linux下C++base64加解密与图片互转
最近由于工作需要,需要处理由http传来的base64图片数据,特此做下记录也希望能帮到更多的朋友. 部分内容参考Andy____Li 的blog: https://blog.csdn.net/m0_ ...
- Jmeter接口请求Base64加解密
jmeter 对报文进行Base64加解密心得. 业务需求是,对接口进行测试,但需要对报文进行加密,对返回的密文进行解密. 遇到的问题:接口传的报文字段,因为没有加密,所以 ...
- java实现加密———Base64加解密
java实现Base64加解密 @Testpublic void test01() throws Exception {String name = "LuWenMenHu";Str ...
- PB实现BASE64加解密
文章目录 实例 文本加解密 文件加解密 源代码 实例 文本加解密 1.加密文本:PB实现BASE64加解密 得到的密文为:UELlrp7njrBCQVNFNjTliqDop6Plr4Y= 2.解密文本 ...
- 【安全算法之base64】base64加解密的C语言源码实现
最近,有项目中需要用到base64的加解密,所以用C语言实现了一遍,测试效果还不错,代码量和RAM消耗都比较低,可以提供给大家参考下. #include <stdbool.h> #incl ...
- golang RSA base64 加解密 签名验签
1.秘钥.加密/签名字符串加密的格式 目前主要见到有hex及base64 (1)hex 针对hex的加解密 import ("encoding/hex" ) hex.DecodeS ...
- Base64加解密实现
文章目录 一.说明 1.base64 2.转换的思路 加密思路 解密思路 二.术语和参考资料 ASCII对照表 Base64表 三.整体设计 类接口 四.示例 1.对字符'j'进行加密 2.对&quo ...
最新文章
- css超过两行显示为..._使用这些不太常用的CSS属性,布局效率上又提高了一个层次...
- redis geohash 学习笔记
- linux 下 iscsi的简单使用
- C与CPP 在线手册查找
- CDH Yarn资源动态分配 - 指定资源限制 公平调度具体设置
- eclipse启动tomcat 404
- IDEA Maven的下载和配置
- memcache_engine + memcachedb = 高性能分布式内存数据库
- (TOJ1531)爱的伟大意义
- 在Zuul中设置服务访问限流
- Memcache 查看列出所有key的方法
- 【数据分析方法论】关于思维、营销、咨询、绩效管理的一些经典分析框架
- 文件或目录损坏且无法读取android studio
- 帝搜软件新功能发布:知乎关键词seo排名优化上线
- googleapis.com替换CDN
- USACO2008游荡的奶牛
- 稀疏数组练习demo 数据结构和算法
- css实现背景图片的毛玻璃效果
- 记一次漫长的蓝屏处理过程
- debian配置网卡