生成离线机器码

发布时间:2026/7/18 13:26:40
生成离线机器码 # -*- coding: utf-8 -*- """ 机器码(硬件指纹)采集模块。 设计原则: - 组合多个硬件标识(CPU序列号 + 主板序列号 + 系统盘卷序列号 + 显卡UUID)后统一哈希, 避免依赖单一、容易被篡改或虚拟化的标识(例如只用 MAC 地址很容易被换卡绕过)。 - 全程本地读取,不联网。 - Windows 下使用真实硬件查询命令;非 Windows(开发机 / CI 测试环境)提供一个 明确标注为"仅测试用"的兜底实现,方便在没有 Windows 机器时也能跑通整条链路的单元测试。 """ from __future__ import annotations import base64 import hashlib import platform import subprocess import uuid class MachineIDError(Exception): """采集硬件标识失败时抛出。""" def _run_cmd(cmd: list[str]) - str: """执行命令并返回 stdout 文本,失败时返回空字符串(不让单个采集点阻断整体流程)。""" try: out = subprocess.check_output( cmd, stderr=subprocess.DEVNULL, timeout=5 ) return out.decode(errors="ignore").strip() except Exception: return "" def _parse_wmic_value(raw: s