Heim > Java > javaLernprogramm > Hauptteil

Wie verschlüsselt und entschlüsselt Spring Boot vertrauliche Informationen?

PHPz
Freigeben: 2023-05-10 14:46:06
nach vorne
1384 Leute haben es durchsucht

Wir verwenden die neueste Version von jasypt, um vertrauliche Informationen zu verschlüsseln und zu entschlüsseln.

1. Fügen Sie der Projekt-POM-Datei die folgenden Abhängigkeiten hinzu:

   <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>3.0.3</version>
   </dependency>
Nach dem Login kopieren

2. Erstellen Sie eine öffentliche Klasse für die Verschlüsselung und Entschlüsselung:

package com.myproject.common.utils;
 
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
 
public class JasyptUtil {
    /*
     * textToEncrypt,需要加密的明文
     * salt,加密的盐,需要与解密保持一致
     * algorithm,加密算法,需要与解密算法保持一致
     */
    public static String encrypt(String textToEncrypt, String salt, String algorithm) {
        // 1. 创建加解密工具实例
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        // 2. 加解密配置
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(salt);
        // 3. 加密算法,需要与解密算法一致
        config.setAlgorithm(algorithm);
        // 为减少配置文件的书写,以下都是 Jasyp 3.x 版本,配置文件默认配置
        config.setKeyObtentionIterations( "1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        // 4. 加密
        return encryptor.encrypt(textToEncrypt);
    }
 
    /*
     * textToDecrypt,需要解密的密文
     * salt,解密的盐,需要与加密保持一致
     * algorithm,解密算法,需要与加密算法保持一致
     */
    public static String decrypt(String textToDecrypt, String salt, String algorithm){
        // 1. 创建加解密工具实例
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        // 2. 加解密配置
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(salt);
        // 3. 解密算法,必须与加密算法一致
        config.setAlgorithm(algorithm);
        // 为减少配置文件的书写,以下都是 Jasyp 3.x 版本,配置文件默认配置
        config.setKeyObtentionIterations( "1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        // 4. 解密
        return encryptor.decrypt(textToDecrypt);
    }
}
Nach dem Login kopieren

3 Informationen in der yml-Datei.

Geben Sie das jasypt-Abhängigkeitsverzeichnis ein, jasypt-1.9.3.jar. Führen Sie den cmd-Befehl aus.

java -cp  jasypt-1.9.3.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="mypassword" password=mypassword algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator
Nach dem Login kopieren

Wie verschlüsselt und entschlüsselt Spring Boot vertrauliche Informationen?

Der Chiffretext unter OUTPUT im Bild ist der verschlüsselte Chiffretext Verwenden Sie beim Entschlüsseln einfach den Code in 2.

Unter ihnen:

Eingabe: Klartext-Passwort

Passwort: hinzuzufügendes Salz, geheimer Schlüssel
Algorithmus: Verschlüsselungsalgorithmus

Verschlüsselungsalgorithmen umfassen Folgendes:

PBEWITHHMACSHA1ANDAES_128

PBEWITHHMACSHA1ANDAES_256
PBEWITHHMACSHA22 4ANDAES_128
PBEWITHHMACSHA224ANDAES_256
PBEWITHHMACSHA256ANDAES_128
PBEWITHHMACSHA256ANDAES_256
PBEWITHHMACSHA384ANDAES_128
PBEWITHHMACSHA384ANDAES_256
PBEWITHHMACSHA512ANDAES_128
PBEWITHHMACSHA512ANDAES_256
PBEWITHMD5ANDDES
PBEWITHSHA1ANDTRIPLEDES
PBEWITHSHA1ANDDESEDE
PBEWITHSHA1ANDRC2_12 8
PBEWITHSHA1ANDRC2_40
PBEWITHSHA1ANDRC4_128
PBEWITHSHA1ANDRC4_40

4. If the version of jdk used is java1.8 or java8, then you need to upgrade the corresponding jre and jdk

Sie müssen jce -policy-8.zip herunterladen. Nach dem Herunterladen entpacken Sie es. Es enthält die Upgrade-Methode.

Das obige ist der detaillierte Inhalt vonWie verschlüsselt und entschlüsselt Spring Boot vertrauliche Informationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.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