™技术博客

框架 | 1.配置文件加解密

2021年8月7日

1. Jasypt库


Java库,允许开发人员以很简单的方式添加基本加密功能,而无需深入研究加密原理。
具有以下特性

  • 高安全性的,基于标准的加密技术,无论是单向和双向加密
  • 集成HIbernate的
  • 可集成到Spring应用程序中,与SpringSecurity集成
  • 集成的能力,用于加密的应用程序(即数据源)的配置
  • 特定功能的高性能加密的multi-processor/multi-core系统
  • 与任何JCE提供者使用开放的API

2. jasypt-spring-boot


github

1
2
3
4
5
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
<version>3.0.3</version>
</dependency>

最重要参数

  • 根密码:jasypt.encryptor.password

3. 封装加密工具类


  1. 关键类
  • StringEncryptor
  • Environment
  1. 单例demo
    1
    2
    3
    4
    5
    6
    7
    @Test
    public void testJasypt() {
    System.setProperty("jasypt.encryptor.password", "aiops");
    StringEncryptor stringEncryptor = new DefaultLazyEncryptor(new StandardEnvironment());
    System.out.println(stringEncryptor.encrypt("aiops"));
    System.out.println(stringEncryptor.decrypt("bqLog0DzT0mfuHYJC1i5SSreKg6GV5I3WBU4SuPokMWZT7CsMW26Q/QMmDw0QHjv"));
    }

4. 与Spring配置文件的结合使用


加密配置

1
2
3
4
5
jasypt:
encryptor:
password: aiops
algorithm: PBEWithMD5AndDES
iv-generator-classname: org.jasypt.iv.NoIvGenerator

使用示例

1
2
3
4
5
6
security:
oauth2:
client:
client-id: ENC(lPmuUC/KN6r7E/ulzAyH0BW3Ol8L5kqq)
client-secret: ENC(fJ4pux/6P4aeZ3BYUgDB7awPxjIvBV4o)
scope: server

注意事项
配置文件有明确加密要求时才使用

Tags: java

扫描二维码,分享此文章