Criptografia de informações confidenciais (nome de usuário de dados, senha) no arquivo de configuração no projeto SpringBoot

1. Apresente o POM

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

2. Gere texto cifrado com base no texto original e na chave secreta

Após adicionar a dependência, ele irá baixar para um arquivo jasypt-1.9.2.jar no caminho do repositório local maven

Use os seguintes comandos para gerar texto cifrado com base no texto original (informações confidenciais) e na chave secreta (personalizada)

java -cp jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=此处填写需要加密的原文 password=此处填写秘钥 algorithm=PBEWithMD5AndDES

O resultado do cálculo do algoritmo é diferente a cada vez.

Os comandos de verificação de descriptografia são os seguintes:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=加密之后的密文 password=秘钥 algorithm=PBEWithMD5AndDES

3. Adicione o texto cifrado gerado ao arquivo de configuração

Observe que ENC () precisa ser adicionado e o texto cifrado é adicionado entre parênteses. Diga a Spring que este é o conteúdo criptografado e precisa ser descriptografado. Por exemplo

spring.datasource.url=ENC(aHMBiWporNNBm3IwftEBu+1zA/v7JsO924+UR3MTxf2YNRBP/jZK1cb88YL/dxtYTxdKUyeWOatTCpZcCgQmwKQ7AIysILRC)
spring.datasource.username=ENC(WG7hK9Q3gi0CfSB560hSBQ==)
spring.datasource.password=ENC(EjmLk30zKbJbaxR0LJEXc2rjE7UwagRp)

Quarto, inicie o serviço

Ao iniciar o serviço, você precisa especificar a chave de descriptografia jasypt.encryptor.password

Modo de inicialização da linha de comando:

java -Djasypt.encryptor.password=此处填写秘钥  -jar xxx.jar

Se for uma inicialização IDE, como eclipse, você precisa configurar os parâmetros de inicialização da seguinte forma

Acho que você gosta

Origin blog.csdn.net/H517604180/article/details/92407098
Recomendado
Clasificación