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

网上商城制作seo营销

网上商城制作,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://www.dtcms.com/wzjs/305788.html

相关文章:

  • b2c网站功能百度代理授权查询
  • jtbc网站开发知乎关键词搜索
  • 品牌网站建设专家百度关键词首页排名服务
  • 北海网站建设百度seo排名点击器app
  • wordpress模版开发教程购买seo关键词排名优化官网
  • adobe专门做网站的软件电脑优化设置
  • 南城免费做网站百度广告联盟平台官网
  • 高端品牌网站建设服务淘宝网官方网站
  • 台州做网站那家好商丘网络推广公司
  • 做资源网站盈利点百度官方网站下载安装
  • 怎么给我 的网站做关键词链接买卖价格
  • 深圳好的网站建设公司排名指数工具
  • 前端做项目的网站企业全网推广
  • 大型网站的技术架构问题网站首页seo关键词布局
  • 公司变更说明东莞网站建设优化推广
  • 网站的按钮怎么做seo权威入门教程
  • 企业所得税优惠政策最新2023规定网络优化工程师有多累
  • 北京建设教育协会网站首页佛山seo关键词排名
  • 网站建设费用预算表、百度客服在线咨询电话
  • 沈阳建站模板系统seo推广知识
  • 网站二级域名怎么做站长友情链接
  • 网站阵地建设seo技术是什么
  • 大庆市建设局宫方网站百度广告上的商家可靠吗
  • 合同模板网站合肥seo推广公司
  • 有哪些网站可以做推广学营销app哪个更好
  • 怎么通过淘宝优惠券做网站赚钱绍兴seo排名收费
  • 网站建设功能评估表全国疫情高峰感染进度查询
  • 网站建设评语市场推广专员
  • 东莞樟木头网站建设公司湖南百度推广代理商
  • 龙湾区建设局的网站高质量内容的重要性