README.md - 文档

crypto 包

功能

提供 Gateway Worker 架构中所有组件间通讯的 AES-256-CBC 加密/解密 能力。

原理

密钥派生

SecretKey (用户配置的字符串)
    ↓ SHA-256
AES Key (32 字节,适用于 AES-256)

所有组件(Register、Gateway、Worker)使用相同的 SecretKey,通过 SHA-256 派生出一致的 AES 密钥。

加密格式

二进制模式(Gateway ↔ Worker 内部通讯):

[16 字节随机 IV] + [PKCS7 填充后的 AES-256-CBC 密文]

文本模式(Register ↔ Gateway/Worker 文本协议):

Base64(上述二进制格式) + "\n"

数据流中的加密层

原始数据 → AES-256-CBC 加密 → [4字节密文长度][密文]  (二进制传输)
原始数据 → AES-256-CBC 加密 → Base64 编码 + 换行符  (文本传输)

导出函数

函数 用途
DeriveKey(secretKey) 从密钥字符串派生 32 字节 AES 密钥
Encrypt(plaintext, key) AES-256-CBC 加密,返回 [IV][密文]
Decrypt(ciphertext, key) AES-256-CBC 解密
EncryptToBase64(plaintext, key) 加密后 Base64 编码(文本协议用)
DecryptFromBase64(encoded, key) Base64 解码后解密(文本协议用)

安全特性