一、核心原理
通过 SCPI 读取电源 EEPROM 二进制校准数据
使用 AES-256-CBC 高强度加密
保存为 .enc 加密文件
恢复时必须输入正确密码才能解密并写回仪器
全程不依赖 Keysight 原厂工具
二、环境安装
bash
运行
pip install pyvisa cryptography
三、完整脚本:加密备份 + 解密恢复(直接可用)
1. EEPROM 校准数据 加密备份
python
运行
import pyvisa
import datetime
import os
from cryptography.fernet import Fernet
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
import base64
# ===================== 配置 =====================
VISA_ADDR = "TCPIP0::192.168.1.100::inst0::INSTR"
BACKUP_DIR = r"D:EEPROM_ENCRYPTED"
PASSWORD = b"YourSecurePassword123" # 自定义高强度密码
# =================================================
os.makedirs(BACKUP_DIR, exist_ok=True)
# 生成 AES-256 密钥
salt = b"keysight_eeprom_salt"
kdf = PBKDF2HMAC(algorithm=hashes.SHA256(), length=32. salt=salt, iterations=100000)
key = base64.urlsafe_b64encode(kdf.derive(PASSWORD))
f = Fernet(key)
# 连接电源
rm = pyvisa.ResourceManager()
psu = rm.open_resource(VISA_ADDR)
psu.timeout = 15000
# 读取仪器信息
sn = psu.query("*IDN?").split(",")[2].strip()
cal_date = psu.query("CAL:DATE?").strip()
# 读取 EEPROM 原始数据
eeprom_raw = psu.query_binary_values("SYST:DATA:EEP:READ?", datatype="B")
eeprom_bytes = bytes(eeprom_raw)
# 加密
encrypted_data = f.encrypt(eeprom_bytes)
# 保存加密文件
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"EEPROM_ENC_{sn}_{timestamp}.enc"
file_path = os.path.join(BACKUP_DIR, filename)
with open(file_path, "wb") as f_out:
f_out.write(encrypted_data)
print(f"✅ EEPROM 加密备份完成:{file_path}")
print(f"