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

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

不言
Freigeben: 2019-02-19 15:56:53
nach vorne
6189 Leute haben es durchsucht

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>
Nach dem Login kopieren

Drei: Erstellen Sie eines unserer Toolkits

Codebeispiel : JasyptUtils.java

# 配置文件加密key
jasypt:
  encryptor:
    password: panther
Nach dem Login kopieren

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=="));
    }

}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage