Class PersistenceEncryption
java.lang.Object
io.leandev.appfuse.security.crypto.PersistenceEncryption
應用持久化資料的 purpose-scoped 可逆加密能力。
根金鑰由應用組裝層提供;本類不讀取環境或 Spring 設定,也不暴露根金鑰。每個 purpose 以 HKDF-SHA-256 衍生獨立 AES-256 key,再以 AES-GCM 與每筆獨立 96-bit nonce 加密。密文 envelope 保存格式版本與 root key id,使應用可在 key ring 中保留舊金鑰完成輪替。
purpose 是公開且穩定的 domain separation label,不是機密。呼叫端應使用帶 namespace 與版本的
固定值,例如 application/{domain}/v1,不可由 request data 動態組成。
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic PersistenceEncryptionfromBase64(String activeKeyId, Map<String, String> encodedKeys) 從 Base64 key ring 建立能力。空白值視為未配置;非空值須解碼為 32 bytes。取得固定 purpose 的文字加解密邊界;回傳物不暴露 root key。
-
Field Details
-
ROOT_KEY_BYTES
public static final int ROOT_KEY_BYTES- See Also:
-
-
Method Details
-
fromBase64
從 Base64 key ring 建立能力。空白值視為未配置;非空值須解碼為 32 bytes。- Parameters:
activeKeyId- 加密新資料使用的 key idencodedKeys- key id → Base64 root key;可包含解密舊資料用的非 active keys
-
scoped
取得固定 purpose 的文字加解密邊界;回傳物不暴露 root key。
-