Class PersistenceEncryption

java.lang.Object
io.leandev.appfuse.security.crypto.PersistenceEncryption

public final class PersistenceEncryption extends Object

應用持久化資料的 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 Details

  • Method Details

    • fromBase64

      public static PersistenceEncryption fromBase64(String activeKeyId, Map<String,String> encodedKeys)
      從 Base64 key ring 建立能力。空白值視為未配置;非空值須解碼為 32 bytes。
      Parameters:
      activeKeyId - 加密新資料使用的 key id
      encodedKeys - key id → Base64 root key;可包含解密舊資料用的非 active keys
    • scoped

      public TextCipher scoped(String purpose)
      取得固定 purpose 的文字加解密邊界;回傳物不暴露 root key。