相关文章推荐
坏坏的眼镜  ·  【Unity】2D ...·  4 周前    · 
另类的毛衣  ·  C++ 知识点 - ...·  4 月前    · 
正直的豆芽  ·  微信支付报错 ...·  1 年前    · 

Basic info can be configured in applicaiton.yml, like username, pasword, etc. The plaintext of password is not safe. Jasypt help encrypt the sensitive information.

pom dependecny

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

config application.yml

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test
      username: root
      password: ENC(imOyX+iTLUZG1EwmTdHAVS/CX7PK/y7o)
ENC(imOyX+iTLUZG1EwmTdHAVS/CX7PK/y7o) is encrypted with salt by Jasypt. 
The plaintext is 12345678

Jaspyt config in application.yml

jasypt:
  encryptor:
    # encrypted salt
    password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7

Jaspyt UtilTool

import lombok.extern.slf4j.Slf4j;
import org.jasypt.util.text.BasicTextEncryptor;
@Slf4j
public final class JasyptUtil {
    private JasyptUtil() {
    public static String encryptPassword(String salt, String value) {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        textEncryptor.setPassword(salt);
        String result = textEncryptor.encrypt(value);
        log.info("encrypted password (Basic mode) = {}", result);
        return result;
    public static String decryptPassword(String salt, String value) {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        textEncryptor.setPassword(salt);
        String result = textEncryptor.decrypt(value);
        log.info("decypted password (Basic mode) = {}", result);
        return result;

Jaspyt Test

public static void main(String[] args) {
    String str = decryptPassword("EbfYkitulv73I2p0mXI50JMXoaxZTKJ7", "imOyX+iTLUZG1EwmTdHAVS/CX7PK/y7o");
    System.out.println(str.equalsIgnoreCase("12345678")); // true