Qt-序列号生成器

网友投稿 827 2022-05-28

一直想做一个序列号的生成器,今天终于有了开始了,目前只有读取硬件生成,还没有做生成序列号的规则。

目前实现的功能就是读取系统磁盘卷加上CPU ID 和自己的加密字符串,在利用MD5加密,转换成标准32位序列号。称为一个伪装好的加密序列。防止别人看我怎么生成,哈哈,不知道管用不。

上最丑的界面

Qt-序列号生成器

核心代码

/* * 生成序列号 */ const QString Poewr_Key::get_SerialNumber() { QString cpu_id = ""; QProcess p(0); p.start("wmic CPU get ProcessorID"); p.waitForStarted(); p.waitForFinished(); cpu_id = QString::fromLocal8Bit(p.readAllStandardOutput()); cpu_id = cpu_id.remove("ProcessorId").trimmed(); QString lpRootPathName = "C:\\"; LPTSTR lpVolumeNameBuffer=new TCHAR[12];//磁盘卷标 DWORD nVolumeNameSize=12;// 卷标的字符串长度 DWORD VolumeSerialNumber;//硬盘序列号 DWORD MaximumComponentLength;// 最大的文件长度 LPTSTR lpFileSystemNameBuffer=new TCHAR[10];// 存储所在盘符的分区类型的长指针变量 DWORD nFileSystemNameSize=10;// 分区类型的长指针变量所指向的字符串长度 DWORD FileSystemFlags;// 文件系统的一此标志 GetVolumeInformation((LPTSTR)lpRootPathName.utf16(), lpVolumeNameBuffer, nVolumeNameSize, &VolumeSerialNumber, &MaximumComponentLength, &FileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize); return (cpu_id.mid(0,4) + "D-"+ cpu_id.mid(4,4) + "R-" + cpu_id.mid(8,4) + "E-" + cpu_id.mid(12,4) + "A-" + QString::number(VolumeSerialNumber,10).mid(0,4)+"M"); } /* * MD5加密 */ const QString Poewr_Key::hash_Encryption(const QString temp) { QByteArray byte_array; byte_array.append(temp); QByteArray hash_byte_array = QCryptographicHash::hash(byte_array,QCryptographicHash::Md5); return hash_byte_array.toHex().toUpper(); } /* * 格式化生成序列号 */ const QString Poewr_Key::format_HASHString(const QString hashtemp) { QString retemp = ""; for(int i = 0; i < 7; i++) { retemp += hashtemp.mid(4*i,4) + "-"; } retemp += hashtemp.mid(28,4); return retemp; } /* * 去除格式,还原MD5序列 */ const QString Poewr_Key::remove_Format(const QString formathash) { QString temp = ""; for(int i = 0; i < 8; i++) { temp += formathash.mid(5*i,4); } return temp; }

源码连接 码云地址:https://gitee.com/DreamLife-Technology_DreamLife/Qt-Power_Key

GitHub地址:https://github.com/DreamLifeOffice/Power_Key   (已更新)

Qt

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Office 2019高效办公三合一从入门到精通 : 视频自学版》 —第2章 Word 2019基本操作
下一篇:用于 Linux 性能监控的iostat、mpstat 和 vmstat示例
相关文章