【转载】设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
设备唯一标识方法(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系统上获取设备的唯一标识
原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html 唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保 ...
- iphone导出视频出错(连接到系统上的设备没有发挥作用)
在将视频从iphone等设备拷贝至PC时部分视频出现错误:连接到系统上的设备没有发挥作用 错误原因:iphone的视频压缩功能 解决方法:更改iphone的设置 设置-照片-传输到MAC或PC 将其更 ...
- 如何在ubuntu系统上安装多个cudn环境(及对应cudnn、pytorch 、torchvision安装方法 )
如何在ubuntu系统上安装多个cudn环境 第二版本的cuda的安装 cuda的切换设置 对应cudnn的安装 安装pytorch及torchvision 后话 转载请注明出处 在跑模型的时候报错说 ...
- iphone手机里的计算机没有了怎么办,iPhone连到系统上的设备没有发挥作用怎么办...
苹果机上照片越来越多,于是连接数据线,打算把照片传到电脑上,但是在复制照片时,却出现了这样的提示:连到系统上的设备没有发挥作用,应该怎么解决呢,请看本站提供的方法 一.请确保iTunes相关服务是否开 ...
- 解决:win10 休眠项消失,无法使用休眠 powercfg /h /size 50 连到系统上的设备没有发挥作用
为什么用这个休眠的功能?因为重启的话,还要打开那么多应用程序! 重复的操作,能不要就不要.因为浪费时间呀!时间就是生命 有木有! 情景再现: 之前一直使用win10的休眠 感觉还是挺好用的,晚上直接按 ...
- VMware安装windows 系统上提示网络上有重名的解决方法
VMware安装windows 系统上提示网络上有重名的解决方法 标签: virtual pc 网络上有重名 虚拟机 vpc nat共享连接 杂谈 分类: 电脑知识 装了vmware 新建---添加一 ...
- 【Windows 7 Wifi 热点】无法启动承载网络 连到系统上的设备没有发挥作用
[背景介绍] 我用的电脑是Lenovo ThinkPad E420,操作系统版本为:Windows 7 家庭普通版 SP1,处理器为:英特尔酷睿 i5-2450M CPU @ 2.50GHz,内存为: ...
- 连接到系统上的设备没有发挥作用解决方案
连接到系统上的设备没有发挥作用解决方案 问题描述:访问其他电脑的共享文件夹,忘记输入密码,再次访问时,没有出现密码输入提示框,输入地址后提示:"连接到系统上的设备没有发挥作用" 解 ...
- Debug汇编程序 NTVDM has encountered a system error 连接到系统上的设备没有发挥作用
Debug汇编程序 NTVDM has encountered a system error 连接到系统上的设备没有发挥作用 解决方案: 两种尝试 1.打开控制面板 --> 程序和功能 -- ...
最新文章
- openresty 前端开发入门五之Mysql篇
- C#控件 Datagriview控件
- LiveVideoStack线上分享第四季(八):实时远程医学影像服务质量保障与网络优化...
- linux 复制分区文件,dd复制分区后目标分区的大小变成原分区了
- 实验吧Web-易-天网管理系统(php弱类型,==号)
- ValueError: invalid literal for int() with base 10:Python报错及其解决办法
- CentOS下用于查看系统当前登录用户信息的4种方法
- mpAndroidchart 坐标和图表距离_几个小细节--图表那些事
- 老板下死命令:必须将20M文件从30秒压缩到1秒,我是如何做到的?
- gif跟随ProgressBar一起动/pk进度条gif特效
- C# installshield2020项目部署打包详细教程
- 方差分析的SPSS实现
- 网线水晶头接法图解8根顺序
- 在blog中添加attachments功能 (修改系统Control)
- ugui 转轮_Unity3D的FingerGesture插件
- 一个遮罩层怎么遮罩两个图层_遮罩动画需要用两个图层,一个是遮罩层,另一个是()层...
- 机器人制证系统大屏可视化
- 【开发工具】【Valgrind】内存问题检测工具(valgrind)的使用
- 命令行 笔记本键盘禁用_笔记本触控板怎么关
- Unity+Android 打开安卓文件管理器,并拿到文件的真实路径
热门文章
- WPF的Effect效果
- sql——字符串处理
- 【JDBC-1】jdbc编程六大步骤
- SEO优化:自建站图片优化攻略
- 使用python批量提取txt中的数据并写入excel
- .NET Quartz介绍
- Docker--容器挂载
- FileNotFoundError: Could not find module ‘C:\Users\Yolanda\anaconda3\envs\python38\lib\site-packages
- Paxos太难懂?五张图读懂Paxos协议
- Redis介绍及其简单使用方法