You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

除Jasypt外还有哪些可在application.properties中使用加密密码的方案?

Spring Boot JavaMailSender 配置加密密码的替代方案(非Jasypt)

以下是生产环境常用的几种可行方案,可根据项目技术栈选择:

1. Spring Cloud Config 内置加解密能力

  • 适用场景:已经引入Spring Cloud生态的项目,无需额外引入第三方组件
  • 使用方式:
    • 配置加密密钥:对称加密场景直接配置encrypt.key,安全性要求高的场景可配置RSA非对称密钥对
    • 调用Spring Cloud Config自带的加密接口,将明文邮箱密码转换为{cipher}加密后字符串格式
    • 直接将加密后的值填写到application.properties的邮箱密码配置项即可,框架启动时会自动解密
    • 配置示例:
      spring.mail.password={cipher}AQA7x9fZkP2mQz...
      

2. 自定义EnvironmentPostProcessor实现轻量解密

  • 适用场景:不想引入过重依赖,需要自主可控加解密逻辑的项目
  • 使用方式:
    • 自定义类实现EnvironmentPostProcessor接口,重写postProcessEnvironment方法
    • 读取配置文件中加密后的spring.mail.password值,用自定义的加密算法(AES、SM4等)解密后,将明文值以更高优先级注入到Spring环境变量中
    • 在META-INF/spring.factories文件中注册自定义的PostProcessor实现类即可生效
    • 核心代码示例:
      public class MailPasswordDecryptProcessor implements EnvironmentPostProcessor {
          @Override
          public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
              String encryptedPwd = environment.getProperty("spring.mail.password");
              // 调用自定义解密工具类解密
              String decryptedPwd = EncryptUtils.decrypt(encryptedPwd);
              // 注入解密后的值,优先级高于配置文件
              Map<String, Object> pwdMap = Collections.singletonMap("spring.mail.password", decryptedPwd);
              environment.getPropertySources().addFirst(new MapPropertySource("decryptedMailPwd", pwdMap));
          }
      }
      

3. Spring Boot 2.4+ 内置配置转换解密

  • 适用场景:使用Spring Boot 2.4及以上版本的项目,和原生配置体验完全一致
  • 使用方式:
    • 实现PropertySourceLoader自定义配置加载逻辑,对预设前缀的加密值(例如你自定义的{myEncrypt}xxx)自动解密
    • 无需修改业务代码,配置文件中直接填写带自定义前缀的加密密码即可,框架加载配置时自动完成解密

4. 运维侧注入方案(代码零侵入)

  • 适用场景:企业级标准化部署场景,不需要代码层面处理加解密逻辑
  • 使用方式:
    • 配置文件中邮箱密码直接引用环境变量:spring.mail.password=${MAIL_SERVER_PWD}
    • 部署时由运维通过容器环境变量、K8s Secret、服务器内置配置中心等方式注入明文密码,这些基础设施本身已经实现加密存储和权限管控,不会泄露明文密码
  • 优势是完全和业务代码解耦,维护成本最低

内容的提问来源于stack exchange,提问作者Ravina K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:45:03