Heim  >  Artikel  >  Java  >  SpringBoot integriert das Jasypt-Sicherheitsframework und die Inhaltsverschlüsselung der Konfigurationsdatei (Codebeispiel)

SpringBoot integriert das Jasypt-Sicherheitsframework und die Inhaltsverschlüsselung der Konfigurationsdatei (Codebeispiel)

不言
不言nach vorne
2019-02-19 15:56:536135Durchsuche

In diesem Artikel geht es um die Integration des Jasypt-Sicherheitsframeworks und der Konfigurationsdateiinhaltsverschlüsselung (Codebeispiele). Ich hoffe, dass er für Sie hilfreich ist.

Unsere YML- oder Eigenschaftenkonfigurationsdateien im SpringBoot-Projekt sind alle im Klartext, was relativ weniger sicher ist. Wir alle wissen, dass die Konfigurationsdatei einige Benutzernamen und Passwörter für die Datenbankverbindung, einige Schlüssel von Drittanbietern und andere Informationen enthält. Seien wir also vorsichtig und verwenden Sie die Verschlüsselung.

Hier kommt das Jasypt-Sicherheitsframework zum Einsatz.

Eins: Stellen Sie das JAR-Paket im Pom-Schlüssel vor

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

Drei: Erstellen Sie eines unserer Toolkits

Codebeispiel : JasyptUtils.java

# 配置文件加密key
jasypt:
  encryptor:
    password: panther

Viertens: Verwendung

Das obige Toolkit verfügt über eine Hauptmethode. Geben Sie dann den von Ihnen konfigurierten Schlüssel ein Geben Sie den Wert ein, den Sie verschlüsseln möchten, und führen Sie ihn direkt aus.

Ähnlich der Datenbankverbindung in der Konfigurationsdatei

package com.zhuang.common.utils;

import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

/**
 * @Created with Intellij IDEA
 * @Author : payne
 * @Date : 2018/5/18 - 10:37
 * @Copyright (C), 2018-2018
 * @Descripition : Jasypt安全框架加密类工具包
 */
public class JasyptUtils {

    /**
     * Jasypt生成加密结果
     *
     * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
     * @param value    待加密值
     * @return
     */
    public static String encryptPwd(String password, String value) {
        PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
        encryptOr.setConfig(cryptOr(password));
        String result = encryptOr.encrypt(value);
        return result;
    }

    /**
     * 解密
     *
     * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
     * @param value    待解密密文
     * @return
     */
    public static String decyptPwd(String password, String value) {
        PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
        encryptOr.setConfig(cryptOr(password));
        String result = encryptOr.decrypt(value);
        return result;
    }

    public static SimpleStringPBEConfig cryptOr(String password) {
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(password);
        config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setStringOutputType("base64");
        return config;
    }

    public static void main(String[] args) {
        // 加密
        System.out.println(encryptPwd("panther", "root"));
        // 解密
        System.out.println(decyptPwd("panther", "GfP4qfnrJeqMvzN1nOemIQ=="));
    }

}

Das obige ist der detaillierte Inhalt vonSpringBoot integriert das Jasypt-Sicherheitsframework und die Inhaltsverschlüsselung der Konfigurationsdatei (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen