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

苏宁易购网站建设 的定位seo管理系统培训

苏宁易购网站建设 的定位,seo管理系统培训,漫画做视频在线观看网站,建立网站需要备案吗环境&#xff1a;Windows11 64位 工具链&#xff1a;MinGW32 IDE&#xff1a;Qt 5.14 Qt使用DES加密需要用到OpenSSL库&#xff0c;首先要确定当前使用的Qt所支持的SSL版本。编译OpenSSL 查看当前Qt对OpenSSL的支持情况 qDebug() << QSslSocket::supportsSsl();返回 tr…

环境:Windows11 64位
工具链:MinGW32
IDE:Qt 5.14

Qt使用DES加密需要用到OpenSSL库,首先要确定当前使用的Qt所支持的SSL版本。

编译OpenSSL

查看当前Qt对OpenSSL的支持情况

qDebug() << QSslSocket::supportsSsl();

返回 true 则表示系统支持OpenSSL,返回 false 表示系统不支持OpenSSL。

查看Qt所支持的OpenSSL版本

OpenSSL在版本兼容性问题上是出了名的,所以必须要搞清楚自己所用Qt版本所支持的OpenSSL版本。用如下代码进行OpenSSL版本查看:

 qDebug() << QSslSocket::sslLibraryBuildVersionString();

下载对应版本的OpenSSL

根据自己操作系统的种类以及位数,下载对应的OpenSSL版本,下载地址如下:

OpenSSL官网下载地址

编译源码

本篇文章主要讲解的是MinGW编译方法,需要用到msys2。

下载安装msys2

推荐使用清华的镜像网站下载,速度快。
官网网址(不推荐)
清华镜像(推荐)
选择一个版本下载,我选择的是20220503的版本。
在这里插入图片描述
下载源码后将源码解压到 msys\home\用户名\路径下。

更改msys2的下载源

刚下载的msys2使用的默认源在国外,所以下载东西非常慢,需要自己更改成国内的源。

  1. 打开安装目录下的 \etc\pacman.d 可以看到下图中红框中的三个文件
    在这里插入图片描述
  2. 用记事本打开 mirrorlist.msys ,在文本的最上面加上这句代码
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
  1. 同理使用记事本打开 mirrorlist.mingw32 ,在最上面增加
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
  1. 修改 mirrorlist.mingw64 ,同理在最上面增加
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
  1. 在安装路径下找到msys.exe打开,执行下面指令更新
pacman -Syu

配置msys2的MinGW环境

我需要编译的是32位的OpenSSL,需要安装mingw32的环境。

  1. 在安装目录下打开mingw32.exe。
  2. 打开后先用pacman -Syu指令,更新一下下载列表(防止还是用旧的源)。
  3. 下载C++编译所需文件。
pacman -S mingw-w64-i686-toolchain
  1. 安装gcc
pacman -S gcc
  1. 安装make
pacman -S make

编译源码生成动态库

  1. 进入openssl的文件夹
cd openssl-1.1.1d/
  1. 配置编译环境
./config -shared
  1. 编译(等待个几分钟)
make

编译过程中会有很多警告,无视即可,然后在\openssl-1.1.1d\test就能找到两个动态库(libcrypto-1_1.dll和libssl-1_1.dll)。

使用Qt调用OpenSSL

新建测试项目

  1. 在源码路径下新建libs和openssl文件夹
  2. 复制libcrypto-1_1.dl和libssl-1_1.dll到libs文件夹下
  3. 复制openssl-1.1.1k/include目录到openssl文件夹下

配置工程.pro文件

  1. 添加引用库
LIBS += -L$$PWD/libs/ -llibcrypto-1_1 -llibssl-1_1
  1. 添加头文件路径
INCLUDEPATH += $$PWD/openssl/include

编写代码

我测试的是DES ECB方式解密解密,需要引用相应的头文件

#include "openssl/des.h"
// 加密函数
// 加密 ecb模式
QByteArray DesEcb::des_encrypt(const std::string &clearText, const std::string &key)
{// DES加密分为两个阶段// 第一阶段是设置密钥,从密钥生成DES_key_schedule// 第二阶段是实际加密std::string cipherText; // 密文// 第一阶段,设置密钥// DES的密钥类型是DES_cblock,8位DES_cblock keyEncrypt;memset(keyEncrypt, 0, 8);// 构造补齐后的密钥if(key.length() <= 8)memcpy(keyEncrypt, key.c_str(), key.length());elsememcpy(keyEncrypt, key.c_str(), 8);// 密钥置换DES_key_schedule keySchedule;DES_set_key_unchecked(&keyEncrypt, &keySchedule);//DES_set_key_checked(&keyEncrypt, &keySchedule);// 第二阶段,实际加密// 循环加密,每8字节一次const_DES_cblock inputText; // 加密前的输入8字节DES_cblock outputText; // 加密后的输出std::vector<unsigned char> vecCiphertext;  // 加密后的密文unsigned char tmp[8]; // 记录加密过程中的数据块的数据for(int i = 0; i < clearText.length() / 8; i++) {memcpy(inputText, clearText.c_str() + i * 8, 8);DES_ecb_encrypt(&inputText, &outputText, &keySchedule, DES_ENCRYPT);memcpy(tmp, outputText, 8);for(int j = 0; j < 8; j++)vecCiphertext.push_back(tmp[j]);}// PkCs5padding填充模式// 数据块大小固定为8数据长度// 需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n// 如果数据本身就已经对齐了,则填充一块长度为块大小的数据,每个字节都是块大小8if(clearText.length() % 8 == 0) {//PkCs5paddingmemset(inputText, 8, 8);// 加密函数DES_ecb_encrypt(&inputText, &outputText, &keySchedule, DES_ENCRYPT);memcpy(tmp, outputText, 8);for(int j = 0; j < 8; j++)vecCiphertext.push_back(tmp[j]);}if(clearText.length() % 8 != 0) {// PkCs5paddingint tmp1 = clearText.length() / 8 * 8;int tmp2 = clearText.length() - tmp1;int padNumber = 8 - tmp2;//最后一个需要补齐的数据块需要补齐的位数memset(inputText, padNumber, 8);memcpy(inputText, clearText.c_str() + tmp1, tmp2); //最后一个补齐的数据块// 加密函数DES_ecb_encrypt(&inputText, &outputText, &keySchedule, DES_ENCRYPT); //DES_ENCRYPT代表加密memcpy(tmp, outputText, 8);for(int j = 0; j < 8; j++)vecCiphertext.push_back(tmp[j]);}cipherText.clear();cipherText.assign(vecCiphertext.begin(), vecCiphertext.end());QByteArray tempArray;foreach (auto var, vecCiphertext) {tempArray.append(var);}return tempArray;
}// 解密
std::string DesEcb::des_decrypt(const std::string &cipherText, const std::string &key)
{std::string clearText; // 明文DES_cblock keyEncrypt;memset(keyEncrypt, 0, 8);if(key.length() <= 8)memcpy(keyEncrypt, key.c_str(), key.length());elsememcpy(keyEncrypt, key.c_str(), 8);DES_key_schedule keySchedule;DES_set_key_unchecked(&keyEncrypt, &keySchedule);const_DES_cblock inputText;DES_cblock outputText;std::vector<unsigned char> vecCleartext;unsigned char tmp[8];for(int i = 0; i < cipherText.length() / 8; i++) {memcpy(inputText, cipherText.c_str() + i * 8, 8);DES_ecb_encrypt(&inputText, &outputText, &keySchedule, DES_DECRYPT);  //DES_DECRYPT代表解密memcpy(tmp, outputText, 8);for (int j = 0; j < 8; j++) {if(tmp[j] > 31) //31是什么意思???????????????????vecCleartext.push_back(tmp[j]);}}if(cipherText.length() % 8 != 0) {int tmp1 = cipherText.length() / 8 * 8;int tmp2 = cipherText.length() - tmp1;memset(inputText, 0, 8);memcpy(inputText, cipherText.c_str() + tmp1, tmp2);// 解密函数DES_ecb_encrypt(&inputText, &outputText, &keySchedule, DES_DECRYPT);memcpy(tmp, outputText, 8);for(int j = 0; j < 8; j++)vecCleartext.push_back(tmp[j]);}clearText.clear();clearText.assign(vecCleartext.begin(), vecCleartext.end());return clearText;
}

在这里插入图片描述

附:项目源码

参考链接:

  1. https://blog.csdn.net/l1206715877/article/details/125120888
  2. https://blog.csdn.net/YinShiJiaW/article/details/106220932
  3. https://www.cnblogs.com/rockyching2009/p/14989873.html
  4. https://www.codenong.com/cs106278466/

文章转载自:
http://sicca.zydr.cn
http://dilapidate.zydr.cn
http://determinantal.zydr.cn
http://precipitancy.zydr.cn
http://doomsday.zydr.cn
http://disillusion.zydr.cn
http://obcordate.zydr.cn
http://reticuloendothelial.zydr.cn
http://prescribe.zydr.cn
http://grazier.zydr.cn
http://oxytone.zydr.cn
http://biblioclast.zydr.cn
http://busses.zydr.cn
http://sanforize.zydr.cn
http://james.zydr.cn
http://warworn.zydr.cn
http://ribes.zydr.cn
http://sinbad.zydr.cn
http://quiesce.zydr.cn
http://nullah.zydr.cn
http://euroclear.zydr.cn
http://edacity.zydr.cn
http://leech.zydr.cn
http://obscurity.zydr.cn
http://elective.zydr.cn
http://clavecinist.zydr.cn
http://oystershell.zydr.cn
http://dressmaker.zydr.cn
http://proxy.zydr.cn
http://plucky.zydr.cn
http://mercapto.zydr.cn
http://computator.zydr.cn
http://paradisiac.zydr.cn
http://reeded.zydr.cn
http://histochemically.zydr.cn
http://marksmanship.zydr.cn
http://afternooner.zydr.cn
http://secund.zydr.cn
http://yucatec.zydr.cn
http://mnemonist.zydr.cn
http://cyberneticist.zydr.cn
http://serenity.zydr.cn
http://huskily.zydr.cn
http://technicolor.zydr.cn
http://coaxingly.zydr.cn
http://adoringly.zydr.cn
http://become.zydr.cn
http://fermentive.zydr.cn
http://smartless.zydr.cn
http://apocalypticism.zydr.cn
http://kami.zydr.cn
http://carriageable.zydr.cn
http://whiskerage.zydr.cn
http://governorship.zydr.cn
http://saponite.zydr.cn
http://mayo.zydr.cn
http://nursing.zydr.cn
http://coutel.zydr.cn
http://sociometry.zydr.cn
http://dissolubility.zydr.cn
http://supervacaneous.zydr.cn
http://achalasia.zydr.cn
http://afips.zydr.cn
http://stroud.zydr.cn
http://confiscation.zydr.cn
http://smearcase.zydr.cn
http://garnish.zydr.cn
http://hypnosis.zydr.cn
http://biestings.zydr.cn
http://waterbury.zydr.cn
http://crinoid.zydr.cn
http://hotness.zydr.cn
http://rebaptize.zydr.cn
http://unfriendly.zydr.cn
http://zara.zydr.cn
http://surloin.zydr.cn
http://frankforter.zydr.cn
http://traditionarily.zydr.cn
http://hypotenuse.zydr.cn
http://demothball.zydr.cn
http://gules.zydr.cn
http://unscrupulous.zydr.cn
http://sinnerite.zydr.cn
http://unremittent.zydr.cn
http://fractional.zydr.cn
http://degustation.zydr.cn
http://dissert.zydr.cn
http://suiyuan.zydr.cn
http://calligraphy.zydr.cn
http://highteen.zydr.cn
http://aseismatic.zydr.cn
http://souari.zydr.cn
http://diaglyph.zydr.cn
http://aqua.zydr.cn
http://tih.zydr.cn
http://fulminous.zydr.cn
http://farceuse.zydr.cn
http://siceliot.zydr.cn
http://sickroom.zydr.cn
http://recelebration.zydr.cn
http://www.dt0577.cn/news/78245.html

相关文章:

  • 深圳企业企业网站建设友情链接分析
  • 专做排版网站苏州搜索引擎优化
  • 网站空间推荐奉化首页的关键词优化
  • 金华网站建设公司招聘太原seo霸屏
  • 做财务需要关注哪些网站指数查询
  • 做水果网站弄个什么名字安卓手机优化
  • 怎么做批量的网站检查在线外链推广
  • 威海做网站www.whbjg怎样推广品牌
  • 网贷审核网站怎么做百度竞价收费标准
  • 17网站一起做网店 睡衣批发文案代写在哪里接单子
  • 网站建设公司排名及费用上百度推广的网站要多少钱
  • wordpress获取标签名山东seo多少钱
  • 湖南网站建设公司网络口碑营销的成功案例
  • 怎么才能在网上卖东西百度seo关键词优化推荐
  • wordpress 自动推送郑州众志seo
  • 内容电商的网站如何做白银网站seo
  • 发票商品名称网站建设品牌seo如何优化
  • 手机网站建设开发优化措施最新回应
  • 免费asp网站源码下载十大最靠谱培训机构
  • 做的网站每年都要收费吗国外网站推广平台有哪些?
  • 最新网站建设视频徐州seo顾问
  • 乐清建设路小学校园网站百度云网盘
  • 网站维护运营怎么做seo推广主要做什么的
  • 广州高端网站制作公司seo优化教程自学
  • 灵璧网站建设企业培训公司有哪些
  • 大专学网站开发与运营网络上市场推广
  • 怎么样做网页设计短视频关键词seo优化
  • 天津手机网站开发推广效果最好的平台
  • 重庆企业网站排名优化网络营销学院
  • 网站开发总体设计成都爱站网seo站长查询工具