为软件生成授权的唯一代码 CPUID+主板ID+内存ID
在开发应用软件的时候比较多的情况下会要求生成一个唯一的代码来确定是那个设备的相关数据,这里举例的环境为Windows 操作系统下的生成唯一代码的方法。
参与计算的硬件资源ID有 CPUID,主板ID和内存ID;具体样例代码如下:
/// <summary>/// 获取传感器ID(16位HASH代码)/// </summary>/// <returns></returns>private static string GetSensorID(){string sensorID = string.Empty;string basicID = GetCPUID() + GetMotherboardID() + GetPhysicalMemoryID();System.Security.Cryptography.MD5CryptoServiceProvider mD5CryptoServiceProvider = new System.Security.Cryptography.MD5CryptoServiceProvider();byte[] hashedBuff = mD5CryptoServiceProvider.ComputeHash(Encoding.UTF8.GetBytes(basicID));for (int i = 4; i < 12; i++){sensorID += hashedBuff[i].ToString("X2");}return sensorID;}/// <summary>/// 获得cpu序列号/// </summary>/// <returns></returns>private static string GetCPUID(){var myCpu = new ManagementClass("win32_Processor").GetInstances();var serial = "";foreach (ManagementObject cpu in myCpu){var val = cpu.Properties["Processorid"].Value;serial += val == null ? "" : val.ToString();}return serial;}/// <summary>/// 获取主板序列号/// </summary>/// <returns></returns>private static string GetMotherboardID(){var myMb = new ManagementClass("Win32_BaseBoard").GetInstances();var serial = "";foreach (ManagementObject mb in myMb){var val = mb.Properties["SerialNumber"].Value;serial += val == null ? "" : val.ToString();}return serial;}/// <summary>/// 获取所有内存信息,参考 CPUID 软件/// </summary>/// <returns></returns>private static string GetPhysicalMemoryID(){string memoryID = "";ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PhysicalMemory");foreach (var prop in mos.Get()){memoryID = memoryID + prop["PartNumber"].ToString().Trim() + prop["SerialNumber"].ToString().Trim();}return memoryID;}
为软件生成授权的唯一代码 CPUID+主板ID+内存ID相关推荐
- java生成一条唯一的邀请码_根据用户id生成一个唯一邀请码
需求描述:根据用户id生成与之对应的唯一邀请码,范围为'0-9A-Z'. 这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到 ...
- 实时的软件生成 —— Prompt 编程打通低代码的最后一公里?
PS:这也是一篇畅想,虽然经过了一番试验,依旧有一些不足,但是大体上站得住脚. 传统的软件生成方式需要程序员编写大量的代码,然后进行测试.发布等一系列繁琐的流程.而实时生成技术则是借助人工智能技术,让 ...
- Java根据当前时间生成对于的唯一编号(代码案例)
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- 如何自动生成『状态机』代码?
关注.星标公众号,直达精彩内容 来源:网络素材 有限自动机(Finite Automata Machine)是计算机科学的重要基石,它在软件开发领域内通常被称作有限状态机(Finite State M ...
- 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)
基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器或 ...
- 工控随笔_04_西门子_解决Step 7软件因授权问题不能打开的方式和方法
西门子的软件是授权软件,只有经过授权认证的用户才能使用,如果没有通过授权认证则不能 正常的使用软件的相关功能. 一.西门子授权不成功问题 如上图所示报故障代码: 000001-0505.报警文本为:未 ...
- java 生成token代码_java token生成和校验的实例代码
现在越来越多的登录方式都用到了token作为用户登录令牌,所以实现了一个token生成和校验案例. 缺点:该实现方式token是存储在内存中,不适合分布式项目,如需改为分布式项目部署,可把token存 ...
- 组态王授权产品id和授权锁id_软件加密授权工具推荐
公司研发一套软件,需要开始往外卖,苦于上市后盗版压力比较大.于是寻找了一款软件加密授权工具-Virbox LM. Virbox LM在加密方面,能快速的完成加密工作,不需要编写代码,安全强度也很高.授 ...
- 推荐一款软件加密授权工具
公司研发一套软件,需要开始往外卖,苦于上市后盗版压力比较大.于是寻找了一款软件加密授权工具-Virbox LM. Virbox LM在加密方面,能快速的完成加密工作,不需要编写代码,安全强度也很高.授 ...
- 使用STC-ISP软件生成定时器初始化函数遇到的问题
关于官方版STC-ISP生成的计时器代码 这个软件生成的计时器代码是不可以直接用的 void Timer0Init(void) //50毫秒@11.0592MHz { TMOD &= 0xF0 ...
最新文章
- vb.net写一个简易的RSS阅读器
- 如何获取html页面上的按钮列表,如何从一个html页面获取单选按钮的值到另一个?...
- 反射中getDeclaredConstructors和getConstructors两个方法的区别,然后setAccessible什么时候用,作用是什么?
- [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse
- java中对于异常的处理,代码简单描述
- c++单链表【构造函数、运算符重载、析构函数、增删查改等】
- 科学价值 社交关系 大数据_服务的价值:数据科学和用户体验研究美好生活
- python链表和树实验报告_数据结构树和森林实验报告
- SQL表名,应该用复数还是单数
- cake-build -.Net Core 跨平台构建自动化系统
- mysql集群和memcached_Memcached 高可用集群架构
- 一种基于复制粘贴的cam350邮票孔拼版教程(二)导出gerber
- java 切图_分布式切图服务——切图篇
- python微信公众号生成专属二维码--你再也不用去求人了
- JAVA数据结构之Map和Set
- Android EventBus Subscriber class XXXActivity has no public methods called onEvent
- Matlab quiver函数用法 - 画矢量箭头图
- 杭州/北京内推 | 阿里达摩院灵瞳实验室招聘研究型算法实习生(可转正)
- 预防腰椎间盘突出姿势最重要
- java实现lz77算法实例_数据压缩算法---LZ77算法 的分析与实现