常用加解密方式
这里提供两种加解密的方法。
第一种方法:使用QByteArray的toBase64和fromBase64来实现。
第二种方法:使用base64.cpp文件中的base64_encode和base64_decode来实现。下载地址
加解密调用处理
头文件.h
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 
 | #ifndef WIDGET_H#define WIDGET_H
 
 #include <QtWidgets>
 
 QT_BEGIN_NAMESPACE
 namespace Ui { class Widget; }
 QT_END_NAMESPACE
 
 class Widget : public QWidget
 {
 Q_OBJECT
 
 public:
 Widget(QWidget *parent = nullptr);
 ~Widget();
 
 private:
 Ui::Widget *ui;
 
 QPushButton* m_encryptbtn;
 QPushButton* m_decryptbtn;
 QLineEdit* m_encryptedit;
 QLineEdit* m_decryptedit;
 };
 #endif
 
 
 | 
实现文件.cpp
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 
 | #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 0
 m_encryptedit->setText(QByteArray::fromBase64(m_decryptedit->text().toLocal8Bit()));
 #else
 m_encryptedit->setText(MyCrypto::decrypt(m_decryptedit->text().toStdString()).data());
 #endif
 });
 }
 
 Widget::~Widget()
 {
 delete ui;
 }
 
 
 
 | 
方法二加解密 base64_decode 处理
.h
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | #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
 
 | 
.c
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | #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;
 
 
 
 
 
 
 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;
 }
 
 
 
 
 
 
 
 const std::string MyCrypto::decrypt(const std::string &orignal)
 {
 std::string decoded = base64_decode(orignal);
 return decoded;
 }
 
 | 
相关链接(侵删)
- qt base64加解密
=================我是分割线=================
欢迎到公众号来唠嗑:
