zoukankan      html  css  js  c++  java
  • SpringBoot-技术专区-配置文件加密

      工程中的配置文件如果把数据库的用户名密码写成明文的话是一件很危险的事情,之前也看见网上说可以对密码进行加密,用的时候再解密,因此今天我就尝试如何在spring boot 中的项目中实现关键信息的加密解密,并记录下来。

    jasypt

      Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.

      这是摘抄自Jasypt官网的一句描述,重点就是简单方便,同时和spring能够很好的集成,尤其是还提供了对spring boot的支持,可以参考starter的实现:https://github.com/ulisesbocchio/jasypt-spring-boot

    1. Maven依赖

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

        http://central.maven.org/maven2/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar

    1. 加密密码

      加密命令如下(红色部分代表需要加密的密码):

      java -cp F://.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="test123" password=e9fbdb2d3b21 algorithm=PBEWithMD5AndDES


      命令回显如下(红色部分是加密后的密文):

      ----ENVIRONMENT-----------------
      Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.121-b13
      ----ARGUMENTS-------------------
      algorithm: PBEWithMD5AndDES
      input: test123
      password: e9fbdb2d3b21
      ----OUTPUT----------------------
      ArGx5ir2xs+CmXRhMnThpQ==
    2. 在程序中设置密文

      在程序中设置密文需要使用如下格式:

      ENC(密文)
      如:
      spring.datasource.password=ENC(ArGx5ir2xs+CmXRhMnThpQ==)

      在程序中获取到的spring.datasource.password会自动转换成明文内容(test123)。

    3. 配置密文密码

      在启动命令中配置JVM参数(jasypt.encryptor.password),注入加密密文的密码。
      如:

      java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=e9fbdb2d3b21 -jar -Xmx512m settlement.jar

      注:在docker容器中密文的密码可以设置成环境变量(如:JASYPT_PASSWORD ),上述命令可以修改为:

      java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=${JASYPT_PASSWORD} -jar -Xmx512m settlement.jar
    4. 参考文档
      https://www.ricston.com/blog/encrypting-properties-in-spring-boot-with-jasypt-spring-boot/
      https://github.com/ulisesbocchio/jasypt-spring-boot
    好记性不如烂笔头!
  • 相关阅读:
    HDU 2899 Strange fuction
    HDU 2899 Strange fuction
    HDU 2199 Can you solve this equation?
    HDU 2199 Can you solve this equation?
    Java实现 LeetCode 700 二叉搜索树中的搜索(遍历树)
    Java实现 LeetCode 700 二叉搜索树中的搜索(遍历树)
    Java实现 LeetCode 700 二叉搜索树中的搜索(遍历树)
    Java实现 LeetCode 699 掉落的方块(线段树?)
    Java实现 LeetCode 699 掉落的方块(线段树?)
    Java实现 LeetCode 699 掉落的方块(线段树?)
  • 原文地址:https://www.cnblogs.com/liboware/p/11966817.html
Copyright © 2011-2022 走看看