《QT实用小工具·十七》密钥生成工具

1、概述
源码放在文章末尾

该项目主要用于生成密钥,下面是demo演示:
在这里插入图片描述

项目部分代码如下:

#pragma execution_character_set("utf-8")#include "frmmain.h"
#include "ui_frmmain.h"
#include "qmessagebox.h"
#include "qfile.h"
#include "qprocess.h"
#include "qdebug.h"frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain)
{ui->setupUi(this);this->initForm();qDebug() << this->getCpuName() << this->getCpuId() << this->getDiskNum();
}frmMain::~frmMain()
{delete ui;
}void frmMain::initForm()
{QStringList min;min << "1" << "5" << "10" << "20" << "30";for (int i = 1; i <= 24; i++) {min << QString::number(i * 60);}ui->cboxMin->addItems(min);ui->cboxMin->setCurrentIndex(1);ui->dateEdit->setDate(QDate::currentDate());for (int i = 5; i <= 150; i = i + 5) {ui->cboxCount->addItem(QString("%1").arg(i));}
}QString frmMain::getWMIC(const QString &cmd)
{//获取cpu名称:wmic cpu get Name//获取cpu核心数:wmic cpu get NumberOfCores//获取cpu线程数:wmic cpu get NumberOfLogicalProcessors//查询cpu序列号:wmic cpu get processorid//查询主板序列号:wmic baseboard get serialnumber//查询BIOS序列号:wmic bios get serialnumber//查看硬盘:wmic diskdrive get serialnumberQProcess p;p.start(cmd);p.waitForFinished();QString result = QString::fromLocal8Bit(p.readAllStandardOutput());QStringList list = cmd.split(" ");result = result.remove(list.last(), Qt::CaseInsensitive);result = result.replace("\r", "");result = result.replace("\n", "");result = result.simplified();return result;
}QString frmMain::getCpuName()
{return getWMIC("wmic cpu get name");
}QString frmMain::getCpuId()
{return getWMIC("wmic cpu get processorid");
}QString frmMain::getDiskNum()
{return getWMIC("wmic diskdrive where index=0 get serialnumber");
}QString frmMain::getXorEncryptDecrypt(const QString &data, char key)
{//采用异或加密,也可以自行更改算法QByteArray buffer = data.toLatin1();int size = buffer.size();for (int i = 0; i < size; i++) {buffer[i] = buffer.at(i) ^ key;}return QLatin1String(buffer);
}void frmMain::on_btnOk_clicked()
{bool useDate = ui->ckDate->isChecked();bool useRun = ui->ckRun->isChecked();bool useCount = ui->ckCount->isChecked();if (!useDate && !useRun && !useCount) {if (QMessageBox::question(this, "询问", "确定要生成没有任何限制的密钥吗?") != QMessageBox::Yes) {return;}}QString strDate = ui->dateEdit->date().toString("yyyy-MM-dd");QString strRun = ui->cboxMin->currentText();QString strCount = ui->cboxCount->currentText();QString key = QString("%1|%2|%3|%4|%5|%6").arg(useDate).arg(strDate).arg(useRun).arg(strRun).arg(useCount).arg(strCount);QFile file(QApplication::applicationDirPath() + "/key.db");file.open(QFile::WriteOnly | QIODevice::Text);file.write(getXorEncryptDecrypt(key, 110).toLatin1());file.close();QMessageBox::information(this, "提示", "生成密钥成功,将 key.db 文件拷贝到对应目录即可!");
}void frmMain::on_btnClose_clicked()
{this->close();
}

源码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/598305.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java实现二叉树(上)

1.树型结构 1.1树型结构的概念 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看 起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 1.2树型结构的特点…

原型变量、原子操作、原子性、内存序

一、原子变量、原子操作 锁竞争&#xff1a;互斥锁、条件变量、原子变量、信号量、读写锁、自旋锁。在高性能基础组件优化的时候&#xff0c;为了进一步提高并发性能&#xff0c;可以使用原子变量。性能&#xff1a;原子变量 > 自旋锁 > 互斥锁。 操作临界资源的时间较长…

【leetcode】 c++ 数字全排列, test ok

1. 问题 2. 思路 3. 代码实现 #if 0 class Solution { private:vector<int> path; // 满足条件的一个结果 vector<vector<int>> res; // 结果集 void backtracking(vector<int> nums, vector<bool> used){// 若path的个数和nums个数相等&…

K8S基于containerd做容器从harbor拉取镜

实现创建pod时&#xff0c;通过指定harbor仓库里的镜像来运行pod 检查&#xff1a;K8S是不是用containerd做容器运行时&#xff0c;以及containerd的版本是不是小于1.6.22 kubectl get nodes -owide1、如果containerd小于 1.6.22&#xff0c;需要先升级containerd 先卸载旧的…

金三银四面试题(十六):MySQL面试都问什么(1)

在开发岗位面试中&#xff0c;MySQL基本是必考环节。所以接下来我们就进入MySQL八股文环节&#xff0c;看看都有哪些高频考题。 MySQL 中有哪些不同的表格&#xff1f; 在MySQL中&#xff0c;可以创建多种不同类型的表格&#xff0c;其中一些常见的类型包括&#xff1a; InnoD…

【边缘智能】00_边缘计算发展背景

本系列是个人学习《边缘就算基础知识入门》的笔记&#xff0c;仅为个人学习记录&#xff0c;欢迎交流&#xff0c;感谢批评指正 移动物联设备产生海量数据&#xff0c;数据密集型移动智能应用&#xff0c;计算密集、动态性高&#xff0c;实时性强 传统云计算架构 基于广域互联…

不开玩笑,你应该像「搬砖」一样写代码!斯坦福大学研究如是说

由于程序员不可避免要进行很多重复性的工作&#xff0c;并且工作强度很高&#xff0c;导致有一种自嘲的说法出现&#xff1a;程序员们自称自己每天都在搬砖&#xff08;实际上很多职场人都这么自嘲&#xff09;。我相信当我们说工作像「搬砖」的时候&#xff0c;只是在表达一种…

谷歌DeepMind发布Gecko:专攻检索,与大7倍模型相抗衡

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 Gecko 是一种通用的文本嵌入模型&#xff0c;可用于训练包括文档检索、语义相似度和分类等各…

2-django、http、web框架、django及django请求生命周期、路由控制、视图层

1 http 2 web框架 3 django 3.1 django请求生命周期 4 路由控制 5 视图层 1 http #1 http 是什么 #2 http特点 #3 请求协议详情-请求首行---》请求方式&#xff0c;请求地址&#xff0c;请求协议版本-请求头---》key:value形式-referer&#xff1a;上一次访问的地址-user-agen…

一开始我只是接单试试水而已,后来我居然财富自由了!

一开始我只是抱着试一试的心态&#xff0c;浅浅的尝试了一下网上接单&#xff0c;没办法&#xff0c;这风太大了&#xff01;网上个个儿说的神乎其神的&#xff0c;尤其是动不动就几十W&#xff0c;没办法&#xff0c;我眼红啦&#xff01;赚钱嘛&#xff0c;不丢人&#xff01…

【JavaWeb】百度地图API SDK导入

百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 登录注册&#xff0c;创建应用&#xff0c;获取AK 地理编码 | 百度地图API SDK (baidu.com) 需要的接口一&#xff1a;获取店铺/用户 所在地址的经纬度坐标 轻量级路线规划 | 百度地图API SDK (baidu.com) 需要的…

图片批量高效管理,图片像素缩放支持自定义操作,让图像处理更轻松

在数字化时代&#xff0c;图片管理成为了我们生活和工作中不可或缺的一部分。无论是个人用户还是企业用户&#xff0c;都需要对大量的图片进行有效的管理和处理。然而&#xff0c;面对众多的图片&#xff0c;如何进行批量管理并对其进行像素缩放成为了一个挑战&#xff0c;该如…