设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html
唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保证你的软件在授权后才能在特定机器上使用)、软件License,设备标识,设备身份识别等。下面列举一下各种方法的优劣:
(1)网卡MAC地址
MAC地址可能是最常用的标识方法,但是现在这种方法基本不可靠:一个电脑可能存在多个网卡,多个MAC地址,如典型的笔记本可能存在有线、无线、蓝牙等多个MAC地址,随着不同连接方式的改变,每次MAC地址也会改变。而且,当安装有虚拟机时,MAC地址会更多。MAC地址另外一个更加致命的弱点是,MAC地址很容易手动更改。因此,MAC地址基本不推荐用作设备唯一ID。
(2)CPU ID
在Windows系统中通过命令行运行“wmic cpu get processorid”就可以查看CPU ID。
目前CPU ID也无法唯一标识设备,Intel现在可能同一批次的CPU ID都一样,不再提供唯一的ID。而且经过实际测试,新购买的同一批次PC的CPU ID很可能一样。这样作为设备的唯一标识就会存在问题。
(3)硬盘序列号
在Windows系统中通过命令行运行“wmic diskdrive get serialnumber”可以查看。
可以使用自制的一个特定算法(如GUID、或者一定位数的随机数)生成唯一的ID,然后写入到注册表或者设备上,作为其唯一ID。
这种方法不依赖任何硬件特征,唯一性也可以自己完全控制,不过纯软件的实现缺点是这个ID很容易伪造,也很容易擦除;而且很可能还需要在线验证,后台存储所有ID的服务器必须保持在线。
Windows安装时会唯一生成一个GUID,可以在注册表“HKEY_MACHINE\SOFTWARE\Microsoft\Cryptography”中查看其“MachineGuid”字段。
这个ID作为Windows系统设备的唯一标识不错,不过值得注意的一点是,与硬件ID不一样,这个ID在重装Windows系统后应该不一样了。这样授权软件在重装系统后,可能就需要用户重新购买授权。
在Windows系统中通过命令行运行“wmic csproduct get UUID”可以查看。
但是这个方法也有缺陷,因为不是所有的厂商都提供一个UUID,当这种情况发生时,wmic会返回“FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF”,即一个无效的UUID。
这种方法很多,比如U盾里面可以提供唯一的密钥标识,可信计算密码芯片里面的背书密钥EK等都是唯一固定在安全硬件里面的,而且通过良好的密码算法生成,唯一性和差异性都可以保证,安全性也更高。
设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识相关推荐
- 【转载】设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识 原文地址:http://www.vonwei.com/post/UniqueDeviceIDfor ...
- 如何在windows系统上安装ubuntu双系统
如何在windows系统上安装ubuntu双系统 一.准备工具: 1.U盘 2.软碟通:UltraISO,EasyBCD 3.系统镜像.下载网址1:https://www.ubuntu.com/dow ...
- 如何在Windows系统上使用Object Detection API训练自己的数据?
前言 之前写了一篇如何在windows系统上安装Tensorflow Object Detection API?(点击跳转) 然后就想着把数据集换成自己的数据集进行训练得到自己的目标检测模型.动手之前 ...
- 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...
- epub文件是什么文件?如何在windows系统上打开?
我们在电脑上下载小说.书本时,经常遇到epub格式的文件.其实,EPUB是一种电子文档格式. 如同word txt pdf一样可以承载很多文字信息.但在这种格式中,使用了不同的开放标准.区别在于,EP ...
- 如何在Windows系统上测试服务器端口是否开放
在工作中处理服务器故障问题的时候,经常需要检测一下Windows的服务器业务端口是否开放,是否能正常在外面通讯.下面小编与大家分享一下如何在windows环境下检测服务器端口是否开放. 1. 我们在工 ...
- 如何在Windows系统上下载并安装IBM磁带驱动程序
在你开始之前 在安装磁带设备驱动程序之前,请确保已完成以下操作: 主机总线适配器(HBA)及其设备驱动程序已自动安装. 注意如果连接到磁带库的HBA是Emulex 适配器,请使用Emulex OneC ...
- python安装出错0x80072ee7_如何在Windows系统上安装Python?
现在用Python的人越来越多,很多学习使用Python的人并不是专业的程序员,而是希望利用Python这个工具去提升自己的工作效率,比如数据分析师.数据运营.风控人员.财务人员等职业都对Python ...
- 如何在windows系统上安装Tensorflow Object Detection API?
前言 都说Linux是最适合程序员使用的操作系统,这话还真不假. 之前一直在云服务器上跑代码,近期接手了师兄的台式机(GTX 1050),虽然配置很渣,但想在本地玩玩看,于是乎先安装一波Tensorf ...
最新文章
- python自学免费课堂-推荐5个Python爬虫免费学习资源(B站高赞!)
- DayDayUp:博主,在此,祝愿大家(十五种编程语言输出),2019年春节快乐!猪年诸事大吉!学要有所成,劳要有所获!
- 手动创建1个基于xml配置的springmvc 项目(without Maven)
- 笔记-项目进度管理-精简
- SLAM学习--常用数据集
- 大话设计模式Python实现-观察者模式
- ElastieSearch安装以及与Mongodb的概念对照关系
- 人工智能状态图matlab,人工智能—TensorFlow(七):matplotlib图形可视化
- jenkins 手动执行_想知道如何用Jenkins自动执行Python脚本输出测试报告?
- Xamarin.Forms 简介
- 开发Flex for Android第一个ANE(ActionScript Native Extensions)本地扩展
- React从入门到精通系列之(14)refs和DOM元素
- 笔记本电脑网卡驱动损坏问题
- 高中计算机教育类文章,高中信息技术的教学论文
- 软件各种版本的含义!例如RC,M,GA等等
- 用Java生成word文档
- box-sizing失效情况
- ioi 赛制_钟子谦IOI2019参赛总结
- 什么是敏捷BI?和传统BI有什么不同?
- linux-xsell、xftp连接虚拟机
热门文章
- (Java)图解排序算法之归并排序
- 哈工大计算机系统lab7——微壳
- linux中fstab文件_如何在Linux上写入fstab文件
- CS224N-HW1
- js事件on动态绑定数据,绑定多个事件
- 什么是Socket?websocket和socket区别?
- java.sql.SQLSyntaxErrorException问题常见解决方案:比如Table xxx doesn‘t exist;Unknown column ‘xxx‘ in ‘where...
- DataStage简介
- AI智能改写-文本改写人工智能
- Exchange 2019数据库切换