用途:该模式用于在数据持久化前,由应用显式加密特定敏感字段,解决数据库、文件或备份等静态数据泄露问题。应用决定加密哪些数据并管理加解密操作。
主要能力:字段级粒度,只加密社保号、支付卡、健康信息、认证凭据、密钥等敏感字段,非敏感数据以明文存储,便于部分访问;可按数据类型使用不同密钥,限制单密钥泄露影响并支持分类轮换。
使用方式:写入时应用调用 encrypt(d, keyInfo, config) 得到密文 {d}_k 后存储;读取时先 retrieve,再调用 decrypt({d}_k, keyInfo, config) 还原明文。可由应用层实现,也可借助框架字段加密(如 Django encrypted fields、Hibernate、ActiveRecord attr_encrypted)或数据库列级加密(SQL Server Always Encrypted、Oracle TDE、PostgreSQL pgcrypto)。
适用场景:仅部分字段敏感、不同数据需不同保护级别、需查询非敏感字段、且应用必须控制加密时使用;若全部数据同等敏感或偏好简单实现,可考虑透明加密。
限制与注意事项:密钥须与密文分离,使用 KMS 或 HSM,实施轮换并审计访问;推荐 AES-256-GCM,密钥加密用 RSA-3072+。密文无法直接搜索、高效索引或排序,可用盲索引、可搜索加密或仅加密展示字段、单独索引。需追踪明文在内存、日志、缓存、临时文件、错误信息、备份中的流转,禁止记录明文。加解密会增加延迟,可安全缓存或批量处理。轮换需生成新密钥、后台重加密、更新引用、弃用并最终删除旧密钥,并考虑双密钥期、性能与备份恢复影响。实施清单包括识别敏感字段、强算法、密钥分离、密钥管理、轮换流程、禁止明文日志、缓存安全、备份加密、搜索索引策略与性能测试。
其他事实:资料未提供具体收费、价格、平台或效果数据。