Inhaltsverzeichnis
Eins: Stellen Sie das JAR-Paket im Pom-Schlüssel vor
Drei: Erstellen Sie eines unserer Toolkits
Viertens: Verwendung
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)

Feb 19, 2019 pm 03:56 PM
springboot

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!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie Springboot Jasypt integriert, um die Verschlüsselung von Konfigurationsdateien zu implementieren Wie Springboot Jasypt integriert, um die Verschlüsselung von Konfigurationsdateien zu implementieren Jun 01, 2023 am 08:55 AM

Wie Springboot Jasypt integriert, um die Verschlüsselung von Konfigurationsdateien zu implementieren

Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren May 30, 2023 pm 02:40 PM

Wie SpringBoot Redisson integriert, um eine Verzögerungswarteschlange zu implementieren

So implementieren Sie verteilte Sperren mit Redis in SpringBoot So implementieren Sie verteilte Sperren mit Redis in SpringBoot Jun 03, 2023 am 08:16 AM

So implementieren Sie verteilte Sperren mit Redis in SpringBoot

So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann Jun 03, 2023 pm 04:38 PM

So lösen Sie das Problem, dass Springboot nach dem Einlesen in ein JAR-Paket nicht auf die Datei zugreifen kann

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Dec 29, 2023 am 11:02 AM

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC

Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren Jun 03, 2023 am 11:32 AM

Wie SpringBoot Redis anpasst, um die Cache-Serialisierung zu implementieren

So erhalten Sie den Wert in application.yml in Springboot So erhalten Sie den Wert in application.yml in Springboot Jun 03, 2023 pm 06:43 PM

So erhalten Sie den Wert in application.yml in Springboot

So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden Jun 02, 2023 am 11:07 AM

So implementieren Sie Springboot+Mybatis-plus, ohne SQL-Anweisungen zum Hinzufügen mehrerer Tabellen zu verwenden

See all articles