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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++:Windows获取电脑机器指纹

發布時間:2025/3/15 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++:Windows获取电脑机器指纹 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

很多時候我們需要為一臺Windows設備生成一個機器指紋來標識一臺設備。當然標識設備最好的是與硬件相關的標識,應該硬件一般不會被改變。筆者參考了獲取設備唯一標識這篇博客。筆者將使用下面幾個字段進行機器指紋的生成。

  • 主板UUID
    wmic csproduct get UUID
    唯一值,缺陷并不是所有的廠商都提供UUID(可以使用)
  • CPUID
    wmic cpu get processorid
    同一批次的PC,CPUID可能一樣(可以使用)
  • BIOS序列號
    wmic bios get serialnumber
    刷了BIOS系統可能導致BIOS序列號變動(刷BIOS概率很小,可以使用)
  • 硬盤序列號
    wmic diskdrive get serialnumber
    多塊硬盤,更換硬盤(概率較小,可以使用)
  • 網卡MAC地址
    網卡更換,MAC地址易被更改 作為硬件不可靠(不建議使用)
  • 代碼

    這里我們采用的策略是:主板UUID存在,就使用主板UUID生成機器指紋。主板UUID不存在,使用CPUID、BIOS序列號、硬盤序列號生成機器指紋。這里的散列算法用的標準庫中自帶。

    #include <Windows.h> #include <string> #include <list> #include <iostream> #include <functional>using namespace std; #define BUFFER_SIZE 128bool getDevcieInfo(char* cmd,list<string> &resultList) {char buffer[BUFFER_SIZE];bool ret = false;FILE* pipe = _popen(cmd, "r"); //打開管道,并執行命令 if (!pipe)return ret; char *name[20] = {"UUID","ProcessorId","SerialNumber"};int len0 = strlen(name[0]),len1 = strlen(name[1]),len2 = strlen(name[2]);bool isOk = false;while(!feof(pipe)) {if(fgets(buffer, BUFFER_SIZE, pipe)){if( strncmp(name[0],buffer,len0) == 0 || strncmp(name[1],buffer,len1) == 0 || strncmp(name[2],buffer,len2) == 0 ) // 能夠正確獲取信息{isOk = true;continue;}if( isOk == false || strcmp("\r\n",buffer) == 0 ) //去掉windows無用的空行{continue;}ret = true;resultList.push_back(string(buffer));}}_pclose(pipe); // 關閉管道 return ret; }string getDeviceFingerPrint(){list<string> strList;list<string>::iterator it;hash<string> str_hash;size_t num ;char tmp[11] = {0};// 主板UUID存在,就使用主板UUID生成機器指紋if( getDevcieInfo("wmic csproduct get UUID",strList)&& (*strList.begin()).compare("FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF\r\n") != 0){//cout << *strList.begin();//cout << str_hash(*strList.begin()) << endl;num = str_hash(*strList.begin());sprintf(tmp,"%u",num);//cout << string(tmp) << endl;return string(tmp);}// 主板UUID不存在,使用CPUID、BIOS序列號、硬盤序列號生成機器指紋string otherStr("");strList.clear();if( getDevcieInfo("wmic cpu get processorid",strList) ){otherStr.append( *strList.begin() );}strList.clear();if( getDevcieInfo("wmic bios get serialnumber",strList) ){otherStr.append( *strList.begin() );}strList.clear();if( getDevcieInfo("wmic diskdrive get serialnumber",strList) ){string allDiskNum("");// 硬盤可能有多塊for(it = strList.begin();it != strList.end();it++){allDiskNum.append(*it);}//cout << allDiskNum ;//cout << str_hash(allDiskNum) << endl;otherStr.append( *strList.begin() );}cout << str_hash(otherStr) << endl;//memset(tmp,0,11);num = str_hash(otherStr);sprintf(tmp,"%u",num);//cout << string(tmp) << endl;return string(tmp); }void test() {string deviceFingerPrint = getDeviceFingerPrint();cout << deviceFingerPrint << endl; }int main(int args,char* argv[]) {test();system("pause"); return 0; }

    總結

    以上是生活随笔為你收集整理的C/C++:Windows获取电脑机器指纹的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 久久国产柳州莫菁门 | 动漫美女被到爽 | av老司机在线观看 | 欧美另类国产 | av88av| 天天干,天天干 | 91国自产精品中文字幕亚洲 | 浓精喷进老师黑色丝袜在线观看 | 高潮在线视频 | 性欧美xxxx | 一级黄色片在线播放 | 成人黄色在线观看 | 日本在线视频不卡 | 天天色综 | 免费日韩在线 | 日本精品久久久久中文字幕 | 成人在线免费播放视频 | 免费在线观看黄色av | www.日韩精品 | 香蕉成人在线视频 | 黄色亚洲精品 | 免费手机av| 日韩在线观看视频一区二区三区 | 国模视频在线 | 国产高清在线免费 | 一级特黄高清 | 亚洲成人精选 | 亚洲h动漫| 国产一区二区在线看 | 极品少妇一区二区 | 国产又大又粗又爽 | 亚洲免费看黄 | 91色视频在线 | 99精品国产成人一区二区 | 国产麻豆电影在线观看 | 青娱乐极品在线 | 人妻无码中文字幕 | 一级片在线 | 一级黄色大片在线观看 | 日韩国产欧美精品 | 美女91网站| h部分肌肉警猛淫文 | 精品日本一区二区 | 成人片黄网站久久久免费 | 黄色片成人 | 中国新婚夫妻性猛交 | 亚洲欧美在线一区 | 亚洲激情专区 | 日韩精品电影一区二区 | 欧美韩国日本一区 | 久久久久国色av免费观看性色 | 美女交配 | 波多野结衣在线电影 | 亚洲av综合色区无码一区爱av | 求一个黄色网址 | 精品成人18 | 国内一区二区三区 | 亚洲av无码成人精品区 | 久久久久无码国产精品一区李宗瑞 | 华人永久免费视频 | 免费黄色网址在线观看 | 日本成人精品在线 | 国产一区二区三区在线视频观看 | 国产精品久久亚洲7777 | 熟妇一区二区三区 | 97视频一区二区 | 亚欧成人精品一区二区 | 免费观看成人鲁鲁鲁鲁鲁视频 | 国产欧美久久一区二区三区 | 成人黄色一级 | 朝桐光一区二区三区 | 亚洲午夜一区 | 国产黄片一区二区三区 | 久久国产精品久久久久久电车 | 日批网站在线观看 | 久久高清毛片 | 欧美一区二区三区四区五区六区 | 泽村玲子av| 黄色av一区二区三区 | 国产日韩视频在线 | 最近日韩免费视频 | 日日摸日日碰夜夜爽av | 一区二区三区精品视频在线观看 | 一区二区三区免费高清视频 | 制服下的诱惑暮生 | 亚洲做受高潮 | 亚洲精品推荐 | 国产一级内谢 | 少妇一级淫免费播放 | xxxx日本免费 | av大全在线播放 | 国产伦精品一区二区三区视频1 | 国产精品精品软件视频 | 精品国产91| 男生女生羞羞网站 | av福利片| 欧美日韩一区二区三区在线视频 | 日韩亚洲欧美一区二区三区 | 一本色道久久88亚洲精品综合 |