python-自动篇-运维-根据计算机硬盘、主板、CPU生成注册信息

文章目录

准备

本实例需要使用WMI模块,所以需要安装WMI模块。在安装WMI模块之前,先要安装pywin32模块,WMI模块需要win32api的支持。使用pip安装pywin32模块和WMI模块的代码如下:

pip install win32com

pip install wmi

代码

python 复制代码
import wmi
import random
import os
sec="t95p0q2f6dz1cxmowgjensr7yh384bvualki"
dec="dn7vhlk3wx1efsyc56zu2bomjtq8i0g4rp9a"
c = wmi.WMI()
for physical_disk in c.Win32_DiskDrive():
    hard_seral=physical_disk.SerialNumber   # 获取硬盘序列号
    print("硬盘序列号为:",hard_seral)
if len(hard_seral)>6:
    hard_seral=hard_seral[-6:]
else:
    print("硬盘信息获取错误!")
    os.exit(0)
for cpu in c.Win32_Processor():
    cpu_seral=cpu.ProcessorId.strip()     # 获取CPU序列号
    print("CPU序列号为:",cpu_seral)    
if len(cpu_seral)>4:
    cpu_seral=cpu_seral[-4:]
else:
    print("CPU信息获取错误!")
    os.exit(0)
for board_id in c.Win32_BaseBoard():
    board_id=board_id.SerialNumber        # 获取主板序列号
    print("主板序列号为:",board_id)    
if len(board_id)>6:
    board_id=board_id[-5:]
else:
    print("主板信息获取错误!")
    os.exit(0)    
seral=hard_seral+cpu_seral+board_id
print("注册码使用的硬件信息为:",seral)  
cha_seral=""
for i in range(0,14,2):
    cha_seral+=seral[14-i]+seral[i+1]     # 字符串尾和首递进连接生成新的字符串
cha_seral=cha_seral+ seral[7]             # 字符串的中间值放到新字符串最后   
list_seral=list(cha_seral)                # 字符串转为列表 
list_seral.reverse()                      # 列表反转
rand_seral=""
for i in range(10):                      # 将前10个字符串和其位置索引(16进制)连接
    j=random.randint(1,len(list_seral))
    rand_seral+=hex(j)[2:]+list_seral[j-1]   # hex(j)[2:] ,去掉16进制前的符号0x
    list_seral.remove(list_seral[j-1])
rand_seral=''.join(list_seral) +rand_seral   # 形成25位的字符串
low_seral=""
rand_seral=rand_seral.lower()
for item in rand_seral:
    j=sec.index(item)
    low_seral+=dec[j]
low_seral=low_seral.upper()    
last_seral=low_seral[0:5]+"-"+low_seral[5:10]+"-"+low_seral[10:15]+"-"+low_seral[15:20]+"-"+low_seral[20:25]
print("生成的注册码为:\n",last_seral)

效果

相关推荐
郑同学的笔记13 小时前
【Qt教程29】Qt5和Qt6版本对比
开发语言·qt
基德爆肝c语言13 小时前
Qt 主窗口全家桶:菜单栏、工具栏、状态栏与对话框完全指南
开发语言·qt
老纪13 小时前
SQL中如何查找特定的空值行:WHERE IS NULL深度解析
jvm·数据库·python
噜噜噜阿鲁~13 小时前
python学习笔记 | 10.0、面向对象编程
笔记·python·学习
weixin1997010801614 小时前
[特殊字符] RESTful API 接口规范详解:构建高效、可扩展的 Web 服务(附 Python 源码)
前端·python·restful
2301_7815714214 小时前
mysql数据库响应缓慢如何排查_使用EXPLAIN分析执行计划
jvm·数据库·python
彳亍10114 小时前
实现倒计时数字在到达1后自动隐藏(2为最后可见数字),同时继续运行至-1再终止
jvm·数据库·python
X566114 小时前
CSS如何处理SSR中CSS引入_在服务端渲染时提取关键CSS
jvm·数据库·python
XMYX-014 小时前
28 - Go JSON 数据操作
开发语言·golang·json
三*一15 小时前
Mapbox GL JS 自研面要素整形工具开发实录
开发语言·javascript·arcgis·ecmascript