SpringBoot配置文件加密

SpringBoot配置文件加密

  1. 新建SpringBoot项目#

  2. 在maven中引入jasypt加密组件#

    Copy
    <!-- jasypt加密组件: https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
  3. 在配置文件中配置加密密钥#

    Copy
    #加密的密钥 jasypt.encryptor.password=sc
  4. 新建测试类#

    Copy
    @Test public void sc(){ // 对应配置文件中配置的加密密钥 System.setProperty("jasypt.encryptor.password", "sc"); StringEncryptor stringEncryptor = new DefaultLazyEncryptor(new StandardEnvironment()); System.out.println("加密: " + stringEncryptor.encrypt("root")); System.out.println("加密: "+ stringEncryptor.encrypt("root")); System.out.println("解密: " + stringEncryptor.decrypt("itJ8zZfWj54ZIf1lLVojrg==")); }
  5. 将加密后的账号和密码复制到配置文件中,jasypt默认使用ENC()来标识加密,加载配置的时候检测到ENC()即会自动解密#

    Copy
    # 数据库连接地址 spring.datasource.url=jdbc:mysql://localhost:3306/ceshi?serverTimezone=UTC # 数据库用户名&密码: spring.datasource.username=ENC(b6zfPR9R9aaTtl5VPwrvww==) spring.datasource.password=ENC(AvEzdYaTFniscWGhUw6M/ERwKwhpbZE7)

    jasypt默认使用ENC()来标识加密

    自定义加密标识CESHI()

    Copy
    #加密前缀 #jasypt.encryptor.property.prefix=CESHI( #加密后缀缀 #jasypt.encryptor.property.suffix=)
以上我们的密钥也是保存在配置文件中的,一旦密钥泄露,信息被解密,安全隐患依然存在!因此我们可以通过将密钥设置为程序启动时的参数来避免。
Copy
java -Djasypt.encryptor.password=加密的密钥 -jar test.jar
posted @   striver-sc  阅读(770)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示
CONTENTS