日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt-序列号生成器

發(fā)布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt-序列号生成器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一直想做一個序列號的生成器,今天終于有了開始了,目前只有讀取硬件生成,還沒有做生成序列號的規(guī)則。

?

目前實現(xiàn)的功能就是讀取系統(tǒng)磁盤卷加上CPU ID 和自己的加密字符串,在利用MD5加密,轉換成標準32位序列號。稱為一個偽裝好的加密序列。防止別人看我怎么生成,哈哈,不知道管用不。

上最丑的界面

核心代碼

?

/** 生成序列號*/ 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];// 存儲所在盤符的分區(qū)類型的長指針變量DWORD nFileSystemNameSize=10;// 分區(qū)類型的長指針變量所指向的字符串長度DWORD FileSystemFlags;// 文件系統(tǒng)的一此標志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-序列号生成器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。