资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过第三方软件实现双向直流电源EEPROM校准数据的加密存储?

2026-05-14 10:32:48  点击:

  一、核心原理

  通过 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"