QT 秘鑰生成工具

該項目是注冊機和驗證機項目,分別是密鑰生成工具,和密鑰驗證demo,可以識別電腦唯一標識碼。

#include "frmmain.h"
#include "ui_frmmain.h"
#include "qmessagebox.h"
#include "qfile.h"
#pragma execution_character_set("utf-8")frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain)
{ui->setupUi(this);this->initForm();}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::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);
}//將lineEdit數據復制到剪切板
void frmMain::copyLine(QLineEdit *line)
{QString str = line->text();QClipboard *clip = QApplication::clipboard();clip->setText(str);
}void frmMain::on_btnOk_clicked()
{bool useDate = ui->ckDate->isChecked();bool useRun = ui->ckRun->isChecked();bool useCount = ui->ckCount->isChecked();bool useMd5 = true;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 strMd5 = ui->lineEdit_2->text();QString key = QString("%1|%2|%3|%4|%5|%6|%7|%8").arg(useDate).arg(strDate).arg(useRun).arg(strRun).arg(useCount).arg(strCount).arg(useMd5).arg(strMd5);QFile file(QApplication::applicationDirPath() + "/key.db");file.open(QFile::WriteOnly);file.write(getXorEncryptDecrypt(key, 110).toLatin1());file.close();QMessageBox::information(this, "提示", "生成密鑰成功,將 key.db 文件拷貝到對應目錄即可!");}void frmMain::on_btnClose_clicked()
{this->close();
}void frmMain::on_pushButton_clicked()
{QString jiqi;MD5 md;md.md5Init(jiqi);ui->lineEdit->setText(jiqi);copyLine(ui->lineEdit);
}void frmMain::on_pushButton_2_clicked()
{QString mi,qi;MD5 md;mi = md.md5Encrypt(1,qi);qDebug()<<"機器碼:"<<qi;qDebug()<<"密文:"<<mi;ui->lineEdit_2->setText(mi);copyLine(ui->lineEdit_2);
}void frmMain::on_pushButton_3_clicked()
{QString mi,qi;MD5 md;int t = md.md5Verify(ui->lineEdit_3->text());qDebug()<<"級別:"<<t;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90699.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch神經網絡訓練全流程詳解:從線性層到參數優化

目錄 一、神經網絡訓練的核心組件 二、代碼逐行解析與知識點 三、核心組件詳解 3.1 線性層(nn.Linear) 3.2 損失函數(nn.MSELoss) 3.3 優化器(optim.SGD) 四、訓練流程詳解 五、實際應用建議 六、完整訓練循環示例 七、總結 在深度學習實踐中&#xff0c;理解神經網絡…

從代碼學習深度學習 - 針對序列級和詞元級應用微調BERT PyTorch版

文章目錄 前言針對序列級和詞元級應用微調BERT單文本分類文本對分類或回歸文本標注問答總結前言 在自然語言處理(NLP)的廣闊天地里,預訓練模型(Pre-trained Models)的出現無疑是一場革命。它們如同站在巨人肩膀上的探索者,使得我們能夠利用在大規模文本語料上學到的豐富…

學習筆記丨卷積神經網絡(CNN):原理剖析與多領域Github應用

本文深入剖析了卷積神經網絡&#xff08;CNN&#xff09;的核心原理&#xff0c;并探討其在計算機視覺、圖像處理及信號處理等領域的廣泛應用。下面就是本篇博客的全部內容&#xff01;&#xff08;內附相關GitHub數據庫鏈接&#xff09; 目錄 一、什么是CNN&#xff1f; 二、…

cnpm exec v.s. npx

1. 核心定位與設計目標 npx (Node Package Executor): 定位: Node.js 內置工具&#xff08;npm 5.2 起捆綁&#xff09;&#xff0c;核心目標是便捷地執行本地或遠程 npm 包中的命令&#xff0c;無需全局安裝。核心價值: 避免全局污染&#xff1a; 臨時使用某個 CLI 工具&#…

我花10個小時,寫出了小白也能看懂的數倉搭建方案

目錄 一、什么是數據倉庫 1.面向主題 2.集成 3.相對穩定 4.反映歷史變化 二、數倉搭建的優勢 1.性能 2.成本 3.效率 4.質量 三、數倉搭建要考慮的角度 1.需求 2.技術路徑 3.數據路徑 4.BI應用路徑 四、如何進行數倉搭建 1.ODS層 2.DW層 3.DM層 五、寫在最后…

OBB旋轉框檢測配置與訓練全流程(基于 DOTA8 數據集)

&#x1f680; YOLO交通標志識別實戰&#xff08;五&#xff09;&#xff1a;OBB旋轉框檢測配置與訓練全流程&#xff08;基于 DOTA8 數據集&#xff09; 在專欄前面四篇里&#xff0c;我們完成了&#xff1a; ? Kaggle交通標志數據集下載并重組標準YOLO格式 ? 訓練/驗證集拆…

uniapp制作一個視頻播放頁面

1.產品展示2.頁面功能(1)點擊上方按鈕實現頁面跳轉&#xff1b;(2)點擊相關視頻實現視頻播放。3.uniapp代碼<template><view class"container"><!-- 頂部分類文字 --><view class"categories"><navigator class"category-…

8.卷積神經網絡基礎

8.1 卷積核計算 import torch from torch import nn import matplotlib.pyplot as plt def corr2d(X,k):#計算二維互相關運算h,wk.shape#卷積核的長和寬Ytorch.zeros((X.shape[0]-h1,X.shape[1]-w1))#創建(X-H1,X-W1)的全零矩陣for i in range(Y.shape[0]):for j in range(Y.s…

【每天一個知識點】子空間聚類(Subspace Clustering)

“子空間聚類&#xff08;Subspace Clustering&#xff09;”是一種面向高維數據分析的聚類方法&#xff0c;它通過在數據的低維子空間中尋找簇結構&#xff0c;解決傳統聚類在高維空間中“維度詛咒”帶來的問題。子空間聚類簡介在高維數據分析任務中&#xff0c;如基因表達、圖…

《匯編語言:基于X86處理器》第7章 整數運算(2)

本章將介紹匯編語言最大的優勢之一:基本的二進制移位和循環移位技術。實際上&#xff0c;位操作是計算機圖形學、數據加密和硬件控制的固有部分。實現位操作的指令是功能強大的工具&#xff0c;但是高級語言只能實現其中的一部分&#xff0c;并且由于高級語言要求與平臺無關&am…

JVM故障處理與類加載全解析

1、故障處理工具基礎故障處理工具jps&#xff1a;可以列出正在運行的虛擬機進程&#xff0c;并顯示虛擬機執行主類&#xff08;Main Class&#xff0c;main()函數所在的類&#xff09;名稱以及這些進程的本地虛擬機唯一ID&#xff08;LVMID&#xff0c;Local Virtual Machine I…

Python 第三方庫的安裝與卸載全指南

在 Python 開發中&#xff0c;第三方庫是提升效率的重要工具。無論是數據分析、Web 開發還是人工智能領域&#xff0c;都離不開豐富的第三方資源。本文將詳細介紹 Python 第三方庫的安裝與卸載方法&#xff0c;幫助開發者輕松管理依賴環境。 一、第三方庫安裝方法 1. pip 工具…

RabbitMQ 高級特性之消息分發

1. 為什么要消息分發當 broker 擁有多個消費者時&#xff0c;就會將消息分發給不同的消費者&#xff0c;消費者之間的消息不會重復&#xff0c;RabbitMQ 默認的消息分發機制是輪詢&#xff0c;但會無論消費者是否發送了 ack&#xff0c;broker 都會繼續發送消息至消費者&#x…

Linux操作系統從入門到實戰:怎么查看,刪除,更新本地的軟件鏡像源

Linux操作系統從入門到實戰&#xff1a;怎么查看&#xff0c;刪除&#xff0c;更新本地的軟件鏡像源前言一、 查看當前鏡像源二、刪除當前鏡像源三、更新鏡像源四、驗證前言 我的Linux版本是CentOS 9 stream本篇博客我們來講解怎么查看&#xff0c;刪除&#xff0c;更新國內本…

兩臺電腦通過網線直連形成局域網,共享一臺wifi網絡實現上網

文章目錄一、背景二、實現方式1、電腦A&#xff08;主&#xff09;2、電腦B3、防火墻4、驗證三、踩坑1、有時候B上不了網一、背景 兩臺windows電腦A和B&#xff0c;想通過**微軟無界鼠標&#xff08;Mouse without Borders&#xff09;**實現一套鍵盤鼠標控制兩臺電腦&#xf…

Java Reference類及其實現類深度解析:原理、源碼與性能優化實踐

1. 引言&#xff1a;Java引用機制的核心地位在JVM內存管理體系中&#xff0c;Java的四種引用類型&#xff08;強、軟、弱、虛&#xff09;構成了一個精巧的內存控制工具箱。它們不僅決定了對象的生命周期&#xff0c;還為緩存設計、資源釋放和內存泄漏排查提供了基礎設施支持。…

華為云對碳管理系統的全生命周期數據處理流程

碳管理系統的全生命周期數據處理流程包含完整的數據采集、處理、治理、分析和應用的流程架構,可以理解為是一個核心是圍繞數據的“采集-傳輸-處理-存儲-治理-分析-應用”鏈路展開。以下是對每個階段的解釋,以及它們與數據模型、算法等的關系: 1. 設備接入(IoTDA) 功能: …

大模型安全風險與防護產品綜述 —— 以 Otter LLM Guard 為例

大模型安全風險與防護產品綜述 —— 以 Otter LLM Guard 為例 一、背景與安全風險 近年來&#xff0c;隨著大規模預訓練語言模型&#xff08;LLM&#xff09;的廣泛應用&#xff0c;人工智能已成為推動文檔處理、代碼輔助、內容審核等多領域創新的重要技術。然而&#xff0c;…

1.2.2 計算機網絡分層結構(下)

繼續來看計算機網絡的分層結構&#xff0c;在之前的學習中&#xff0c;我們介紹了計算機網絡的分層結構&#xff0c;以及各層之間的關系。我們把工作在某一層的軟件和硬件模塊稱為這一層的實體&#xff0c;為了完成這一層的某些功能&#xff0c;同一層的實體和實體之間需要遵循…

實訓八——路由器與交換機與網線

補充——基本功能路由器&#xff1a;用于不同邏輯網段通信的交換機&#xff1a;用于相同邏輯網段通信的1.網段邏輯網段&#xff08;IP地址網段&#xff09;&#xff1a;IP地址的前三組數字代表不同的邏輯網段&#xff08;有限條件下&#xff09;&#xff1b;IP地址的后一組數字…