前言¶
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