当前位置: 首页 > wzjs >正文

自己做网站用花钱吗成都app推广公司

自己做网站用花钱吗,成都app推广公司,东莞疾控最新提醒,制作网站公司选 择乐云seo前言 项目开发时,配置文件中某些信息不适合直接明文显示,本文提供基于对称密钥的AES-256算法的加解密工具,可集成到项目中。 AES讲解 以下是我分享的一个在国产信创系统(Linux)下使用openssl实现AES加解密的博文 对称加密--AES加解密 本文…

前言

        项目开发时,配置文件中某些信息不适合直接明文显示,本文提供基于对称密钥的AES-256算法的加解密工具,可集成到项目中。

AES讲解

以下是我分享的一个在国产信创系统(Linux)下使用openssl实现AES加解密的博文

对称加密--AES加解密

本文使用的aes-256是高安全性的算法,对称密钥不泄露,别人很难破解。

QT图形应用效果图

内容和对称密钥都支持中英文。

命令行工具效果图

命令行工具,方便项目中通过调用第三方应用获取打印信息来获取加/解密的结果。

源码讲解

本文的源码引用的是第三方源码QT-AES,只需要把以下两个文件拷贝到QT项目与main.cpp同级目录即可

另外,编写一个实现调用功能的头文件(qaes_openssl.h),如下所示

#ifndef QAES_OPENSSL_H
#define QAES_OPENSSL_H
// qaes_openssl.h
#include <QByteArray>
#include <QCryptographicHash>
#include <QRandomGenerator>
#include "qaesencryption.h"class QAesOpenssl {
public:static QByteArray encrypt(const QByteArray &data, const QString &password) {// 生成随机saltQByteArray salt = generateSalt(8);// 生成密钥和IVKeyIV keyiv = generateKeyIV(password.toUtf8(), salt);// 使用修正后的QAESEncryption接口QAESEncryption aes(QAESEncryption::AES_256, QAESEncryption::CBC, QAESEncryption::PKCS7);QByteArray encrypted = aes.encode(data, keyiv.key, keyiv.iv);// 组合Salted头return ("Salted__" + salt + encrypted).toBase64();}static QByteArray decrypt(const QByteArray &data, const QString &password) {QByteArray decoded = QByteArray::fromBase64(data);// 提取salt和密文if (!decoded.startsWith("Salted__") || decoded.size() < 16) {return QByteArray();}QByteArray salt = decoded.mid(8, 8);QByteArray cipherData = decoded.mid(16);// 生成密钥和IVKeyIV keyiv = generateKeyIV(password.toUtf8(), salt);QAESEncryption aes(QAESEncryption::AES_256, QAESEncryption::CBC, QAESEncryption::PKCS7);QByteArray decrypted = aes.decode(cipherData, keyiv.key, keyiv.iv);// 手动移除PKCS#7填充(核心修复)const int AES_BLOCK_SIZE = 16;if (!decrypted.isEmpty()) {char lastChar = decrypted.back();if (lastChar > 0 && lastChar <= AES_BLOCK_SIZE) {if (decrypted.right(lastChar).count(lastChar) == lastChar) {decrypted.chop(lastChar);}}}return decrypted;}private:struct KeyIV {QByteArray key;QByteArray iv;};static QByteArray generateSalt(int length) {QByteArray salt;salt.resize(length);QRandomGenerator::global()->fillRange(reinterpret_cast<quint32*>(salt.data()),length / sizeof(quint32));return salt;}static KeyIV generateKeyIV(const QByteArray &password, const QByteArray &salt) {QByteArray keyivData;QByteArray md5Hash;QCryptographicHash md5(QCryptographicHash::Md5);const int keySize = 32; // AES-256const int ivSize = 16;  // IV for CBCconst int required = keySize + ivSize;while (keyivData.size() < required) {md5.reset();if (!md5Hash.isEmpty()) {md5.addData(md5Hash);}md5.addData(password);md5.addData(salt);md5Hash = md5.result();keyivData.append(md5Hash);}return {keyivData.left(keySize),keyivData.mid(keySize, ivSize)};}
};
#endif // QAES_OPENSSL_H

引用代码如下

#include "qaes_openssl.h"QString password=ui->pwd_lineEdit->text();
QString plainText=ui->src_textEdit->toPlainText();{// 加密QByteArray encrypted = QAesOpenssl::encrypt(plainText.toUtf8(), password);QString encryptedstr = QString::fromUtf8(encrypted);//qDebug() << "Encrypted Base64:" << encryptedstr;}{// 解密QByteArray decrypted = QAesOpenssl::decrypt(plainText.toUtf8(), password);QString decryptedstr = QString::fromUtf8(decrypted);qDebug() << "decrypted Base64:" << decryptedstr;
}

文章转载自:

http://mKRuN5uQ.cknws.cn
http://X60DUYEV.cknws.cn
http://FaMrMJti.cknws.cn
http://PXyjkmFN.cknws.cn
http://1psLjydN.cknws.cn
http://9XuJBggc.cknws.cn
http://ZYZRHrEb.cknws.cn
http://iLVf8jXV.cknws.cn
http://m5yMXFPR.cknws.cn
http://VTsZCKsz.cknws.cn
http://7ipEEa5c.cknws.cn
http://wYO2eNwc.cknws.cn
http://EgdliYX5.cknws.cn
http://2PEcOXNu.cknws.cn
http://oWkydkVY.cknws.cn
http://dGbrS8lr.cknws.cn
http://u4TlcqlR.cknws.cn
http://trmJLyPp.cknws.cn
http://mseze2rw.cknws.cn
http://s2lzohk5.cknws.cn
http://yqTKdKc1.cknws.cn
http://FJC2ZCFE.cknws.cn
http://m4y0Wn1i.cknws.cn
http://fvdCyodv.cknws.cn
http://PAYFxRtc.cknws.cn
http://oHUQoiz8.cknws.cn
http://37i2KzOO.cknws.cn
http://CfQ1QkNr.cknws.cn
http://6mwPtSYy.cknws.cn
http://e6FEqqiT.cknws.cn
http://www.dtcms.com/wzjs/743047.html

相关文章:

  • 宁波网站建设优化企业官方网站在家做兼职
  • 征集二级网站建设意见 通知自己制作动画的软件
  • 网站首页浮动广告怎么做深圳建立公司网站公司
  • 创意网站制作如何推广一款app
  • 成都的企业网站建设公司全国高风险地区查询地图
  • 创建网站首页时通常取文件名为3d装修设计软件手机版
  • 应用商店网站模板设计公司网站建设方案
  • 网站设计 原型图关键词工具
  • 建筑网站 国外网站建设 正邦
  • a做爰视频免费观费网站自定义内容网站
  • 石家庄营销网站建设多少钱东莞住建局投诉电话是多少
  • 网站页面类型网页设计建立站点实验报告
  • 金泉网普通会员可以建设网站吗写网站软件
  • php网站开发需求文档网站如何做伪静态
  • 网站突然掉排名辽宁建设厅网站什么时候换的
  • 百度搜不倒公司网站公司装修风格
  • 如何建设营销型网站织梦网站管理后台系统上面的织梦链接怎么样去掉
  • 生产企业做网站有用吗如何免费搭建网站源码
  • 照片展示网站模板免费下载wordpress电子书
  • 自学做网站看谁做的好舞蹈视频网站
  • 纯静态网站 搜索功能建筑工程模板
  • 三亚网站建设制作腾讯云服务器用什么软件做网站
  • 甘肃农村网站建设中山网站建设备案
  • 网站音频播放器代码运营商app下载
  • 做照片书哪个网站好苏州的互联网公司有哪些
  • 大同网站建设费用推广产品吸引人的句子
  • 手机视频网站怎么做网页设计和网站制作
  • 网站开发技术交流群大连旅游网站建设
  • 衡水电子网站建设中国国际园林博览会
  • 洛阳万悦网站建设wordpress修改数据库连接