openclaw-home-pc/workspace/decrypt_uat.py
2026-03-21 15:31:06 +08:00

49 lines
1.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
解密飞书 UAT用户访问令牌
"""
import os
import json
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
# 路径
LINUX_UAT_DIR = os.path.expanduser("~/.local/share/openclaw-feishu-uat")
MASTER_KEY_PATH = os.path.join(LINUX_UAT_DIR, "master.key")
ENCRYPTED_FILE = os.path.join(LINUX_UAT_DIR, "cli_a93815b250b9dcb5_ou_86def554b50f91972e2924a605ccf634.enc")
# 常量
IV_BYTES = 12
TAG_BYTES = 16
def decrypt_uat():
# 读取 master key
with open(MASTER_KEY_PATH, "rb") as f:
key = f.read()
# 读取加密文件
with open(ENCRYPTED_FILE, "rb") as f:
data = f.read()
# 解析加密数据:[12-byte IV][16-byte tag][ciphertext]
iv = data[:IV_BYTES]
tag = data[IV_BYTES:IV_BYTES + TAG_BYTES]
ciphertext = data[IV_BYTES + TAG_BYTES:]
# 解密
aesgcm = AESGCM(key)
plaintext = aesgcm.decrypt(iv, ciphertext + tag, None)
# 解析 JSON
token_data = json.loads(plaintext.decode('utf-8'))
return token_data
if __name__ == "__main__":
token_data = decrypt_uat()
print("解密成功!")
print(f"用户 OpenID: {token_data.get('user_open_id')}")
print(f"访问令牌: {token_data.get('access_token', '')[:20]}...")
print(f"刷新令牌: {token_data.get('refresh_token', '')[:20]}...")
print(f"过期时间: {token_data.get('expires_at')}")
print(f"\n完整数据:")
print(json.dumps(token_data, indent=2))