package crypto import "time" // Encryptor 加密器接口 type Encryptor interface { // Encrypt 加密数据 Encrypt(plaintext []byte) ([]byte, error) // Decrypt 解密数据 Decrypt(ciphertext []byte) ([]byte, error) // Name 返回加密算法名称 Name() string } // Signer 签名器接口 type Signer interface { // Sign 生成签名 Sign(data []byte) ([]byte, error) // Verify 验证签名 Verify(data, signature []byte) error } type Config struct { SecretKey string // 对称加密密钥 SignKey string // 签名密钥 TimestampWindow time.Duration // 时间戳允许的时间窗口 EnableTimestamp bool // 是否启用时间戳验证 EnableSignature bool // 是否启用签名 } type EncryptedRequest struct { Data string `json:"data"` // 加密后的数据(Base64) Signature string `json:"signature"` // 签名(Base64) Timestamp int64 `json:"timestamp"` // 时间戳 RequestID string `json:"request_id"` // 请求ID Algorithm string `json:"algorithm"` // 加密算法 } // EncryptedResponse 加密响应体 type EncryptedResponse struct { Data string `json:"data"` Signature string `json:"signature"` Timestamp int64 `json:"timestamp"` RequestID string `json:"request_id"` }