介绍:
本文介绍一个基于 Python 实现的硬件信息注册码生成器。该程序通过获取计算机的硬盘序列号、CPU序列号和主板序列号,生成一个唯一的注册码。这个注册码生成器可以用于软件授权或者其他需要硬件绑定的场景。程序使用 WMI 库来获取硬件信息,并使用随机数和字符串操作来生成最终的注册码。
环境配置:
- Python 3.x
- Windows 操作系统
- WMI 库(通常预装在 Windows 系统中)
项目分布:
- 获取硬盘序列号
- 获取CPU序列号
- 获取主板序列号
- 组合硬件信息
- 生成注册码
- 输出注册码
详细代码:
import wmi
import random
import os
# 定义加密和解密字符串
sec = "t95p0q2f6dz1cxmowgjensr7yh384bvualki"
dec = "dn7vhlk3wx1efsyc56zu2bomjtq8i0g4rp9a"
# 创建 WMI 对象
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)
# 获取CPU序列号
for cpu in c.Win32_Processor():
cpu_seral = cpu.ProcessorId.strip()
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):
j = random.randint(1, len(list_seral))
rand_seral += hex(j)[2:] + list_seral[j - 1]
list_seral.remove(list_seral[j - 1])
rand_seral = ''.join(list_seral) + rand_seral
# 解密注册码
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)
总结:
这个 Python 程序通过获取计算机硬件的序列号来生成一个唯一的注册码。它使用 WMI 库来查询硬件信息,并使用一系列字符串操作和随机数生成来创建注册码。这个程序可以作为软件授权或者硬件绑定的一个简单实现。通过修改加密和解密字符串,可以增加注册码的复杂性和安全性。