配置文件加密 · Jasypt:把明文密码换成 ENC() 密文

前言

Spring 项目的配置文件里,最常见的问题就是明文密码。application.yml 里写着数据库口令、Redis 密码、第三方 Token,文件进了 Git 仓库,任何能读到仓库的人都能看到。改密码要回改配置文件,加机器要再发一份,泄露面始终存在。

Jasypt 这个库本身解决了「密文存在配置里、运行时解密」的问题,但接入成本在别处:要加依赖、要配置加密器、要手工调用加密命令、要把明文逐个替换成 ENC(...)。配置文件加密 · Jasypt 这个 Skill 把这套流程包起来,让扫描、加密、替换这一步可以直接跑。

这是什么

配置文件加密 · Jasypt 是一个面向 Spring/Java 项目的配置文件脱敏 Skill,坐标 @org-ni4nx3b5/config-jasypt-encryptor,由 Prompt 实验室发布,来源 enterprise,分类 it-ops-security,当前版本 1.0.3。

它解决的是:把 yml/yaml/properties/xml 里的明文密码、密钥、Token 批量加密成 Jasypt 兼容的 ENC() 密文,Spring 启动时自动解密,业务代码不用改。目标场景是配置脱敏与合规。

核心功能

1、扫描配置文件。支持 yml、yaml、properties、xml 四种格式,按项目目录递归找出含敏感配置的文件。

2、批量加密。对扫描到的敏感项(密码、密钥、Token)执行加密,输出 Jasypt 兼容的 ENC() 密文,替换原来的明文值。

3、运行时自动解密。密文在 Spring 启动时由 Jasypt 解密,业务代码和配置读取方式不变。

4、脱敏合规。仓库里只剩 ENC() 密文,明文敏感信息不再出现在版本库里。

触发词:配置文件加密、jasypt、密码加密、敏感配置加密、明文改ENC、配置脱敏。

安装与启用

官方页面地址:https://www.skillhub.cn/skills/org-ni4nx3b5/config-jasypt-encryptor

抓取资料中未包含具体安装命令,也没有 Cursor、Codex CLI、Claude Code 各自的安装差异说明。要启用时,先打开上面的官方地址,按页面给出的命令安装;不要 git clone。安装前确认项目里已经有 Jasypt 的运行时解密依赖,否则 ENC() 值不会被解密(这是 Jasypt 本身的要求,不是 Skill 的配置项)。

典型用法

官方简介里给出的可复现流程是三步:

1、扫描。让 Skill 扫描项目目录下的 yml/yaml/properties/xml 文件,列出含明文敏感配置的位置。

2、加密并替换。把命中项批量加密为 ENC() 密文,写回对应配置文件,明文值被覆盖。

3、启动验证。启动 Spring 应用,确认各连接串和凭证正常生效,即说明解密链路可用。

一个最小示例,改造前后对比如下:

# 改造前
spring:
  datasource:
    password: PlainTextPass123

# 改造后
spring:
  datasource:
    password: ENC(AbCd...密文...)

注意:ENC() 里的密文由 Skill 加密生成,原文不可逆,密钥保存在运行环境侧。

适用场景与注意

适合 Spring/Java 项目里配置文件散落着明文口令、需要批量脱敏或合规整改的场景。

有几点要留意:

1、运行时解密密钥不进仓库。密文留在配置文件里,解密用的密钥放在运行环境(环境变量、配置中心或容器密钥里),两者要分开管理。

2、密钥轮换要重加密。换密钥时,所有 ENC() 值都要用新密钥重新加密,否则启动会失败。

3、不要把它当成访问控制。它解决的是明文落盘和版本库泄露,不能替代权限、审计或网络隔离。

4、非 Spring 项目需自行验证解密链路。Skill 描述的是 Spring 自动解密,其他框架要确认运行时解密组件可用。

结尾

配置文件加密 · Jasypt 的价值在于把「扫描—加密—替换」这套手工流程做成一次可跑的操作,让明文口令从仓库里消失,同时不改变 Spring 的读取方式。如果项目里正有一批明文配置要脱敏,可以从官方地址入手:

https://www.skillhub.cn/skills/org-ni4nx3b5/config-jasypt-encryptor

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye