利用Jasypt如何对Spring Boot配置文件加密

 更新时间:2018年07月09日 11:35:11   作者:瞿落  
这篇文章主要给大家介绍了关于利用Jasypt如何对Spring Boot配置文件加密的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

本文主要介绍了Jasypt对Spring Boot配置文件加密的相关方法,下面话不多说了,来一起看看详细的介绍吧

方法如下:

引入jasypt

<dependency>
 <groupId>com.github.ulisesbocchio</groupId>
 <artifactId>jasypt-spring-boot-starter</artifactId>
 <version>2.0.0</version>
</dependency>

生成要加密的字符串

将数据库的用户名和密码进行加密

 public static void main(String[] args) {
  BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
  //加密所需的salt(盐)
  textEncryptor.setPassword("G0CvDz7oJn6");
  //要加密的数据(数据库的用户名或密码)
  String username = textEncryptor.encrypt("root");
  String password = textEncryptor.encrypt("root123");
  System.out.println("username:"+username);
  System.out.println("password:"+password);
 }

输出信息为:

username:i8QgEN4uOy2E1rHzrpSTYA==
password:6eaMh/RX5oXUVca9ignvtg==

或者使用Maven下载好的jar包加密\Maven\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=G0CvDz7oJn6 algorithm=PBEWithMD5AndDES input=root

输出信息为:

----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.171-b11

----ARGUMENTS-------------------
input: root
algorithm: PBEWithMD5AndDES
password: G0CvDz7oJn6

----OUTPUT----------------------
Gvkoz+sbFWiRe3ECtizV1A==

拷贝-OUTPUT-下的结果即可

配置properties文件

将生成的加密串配置ENC(加密串)到application.properties中

# 加密所需的salt(盐)
jasypt.encryptor.password=G0CvDz7oJn6
# 默认加密方式PBEWithMD5AndDES,可以更改为PBEWithMD5AndTripleDES
# jasypt.encryptor.algorithm=PBEWithMD5AndDES
spring.datasource.username=ENC(6eaMh/RX5oXUVca9ignvtg==)
spring.datasource.password=ENC(6eaMh/RX5oXUVca9ignvtg==)

加密方式对应的类为BasicTextEncryptor和StrongTextEncryptor

public BasicTextEncryptor() {
 super();
 this.encryptor = new StandardPBEStringEncryptor();
 this.encryptor.setAlgorithm("PBEWithMD5AndDES");
}

public StrongTextEncryptor() {
 super();
 this.encryptor = new StandardPBEStringEncryptor();
 this.encryptor.setAlgorithm("PBEWithMD5AndTripleDES");
}

类图

部署时配置salt(盐)值

为了防止salt(盐)泄露,反解出密码.可以在项目部署的时候使用命令传入salt(盐)值

java -jar -Djasypt.encryptor.password=G0CvDz7oJn6 xxx.jar

或者在服务器的环境变量里配置,进一步提高安全性

打开/etc/profile文件
vim /etc/profile

文件末尾插入
export JASYPT_PASSWORD = G0CvDz7oJn6

编译
source /etc/profile

运行
java -jar -Djasypt.encryptor.password=${JASYPT_PASSWORD} xxx.jar

官方地址 : https://github.com/ulisesbocchio/jasypt-spring-boot  (本地下载

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Java封装、继承、多态三大特征的理解

    Java封装、继承、多态三大特征的理解

    封装、继承、多态三大特征是java中比较常用的,务必要掌握,下面给大家介绍Java封装、继承、多态三大特征的理解,有不清楚的朋友可以一起学习下
    2016-06-06
  • Java网络编程TCP实现聊天功能

    Java网络编程TCP实现聊天功能

    这篇文章主要为大家详细介绍了Java网络编程TCP实现聊天功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • spring-data-jpa使用自定义repository来实现原生sql

    spring-data-jpa使用自定义repository来实现原生sql

    这篇文章主要介绍了在spring-data-jpa中使用自定义repository来实现原生sql,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 案例讲解SpringBoot Starter的使用教程

    案例讲解SpringBoot Starter的使用教程

    SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置,本文通过案例讲解SpringBoot Starter的使用,感兴趣的朋友一起看看吧
    2023-12-12
  • 利用keytools为tomcat 7配置ssl双向认证的方法

    利用keytools为tomcat 7配置ssl双向认证的方法

    双向认证和单向认证原理基本差不多,只是除了客户端需要认证服务端以外,增加了服务端对客户端的认证,下面这篇文章主要介绍了利用keytools为tomcat 7配置ssl双向认证的方法,需要的朋友可以借鉴,下面来一起看看吧。
    2017-02-02
  • Java中的static的使用指南

    Java中的static的使用指南

    本文给大家简单总结了下java中的static的使用注意事项及方法,非常的实用,有需要的小伙伴可以参考下
    2016-04-04
  • mybatis项目兼容mybatis-plus问题

    mybatis项目兼容mybatis-plus问题

    这篇文章主要介绍了mybatis项目兼容mybatis-plus问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • java实现简单发送邮件功能

    java实现简单发送邮件功能

    这篇文章主要为大家详细介绍了java实现简单发送邮件功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • SpringBoot在容器中创建实例@Component和@bean有什么区别

    SpringBoot在容器中创建实例@Component和@bean有什么区别

    这篇文章主要介绍了SpringBoot在容器中创建实例@Component和@bean有什么区别,在Spring Boot中,@Component注解和@Bean注解都可以用于创建bean。它们的主要区别在于它们的作用范围和创建方式
    2023-03-03
  • 高并发环境下安全修改同一行数据库数据的策略分享

    高并发环境下安全修改同一行数据库数据的策略分享

    随着互联网技术的发展,越来越多的应用需要在高并发环境中运行,数据库的并发控制成为了业务的关键,本文将介绍如何在高并发情况下,安全地修改数据库中的同一行数据,需要的可以参考一下
    2023-06-06

最新评论