Maison > Java > javaDidacticiel > le corps du texte

SpringBoot intègre le cadre de sécurité Jasypt et le cryptage du contenu du fichier de configuration (exemple de code)

不言
Libérer: 2019-02-19 15:56:53
avant
6129 Les gens l'ont consulté

Ce que cet article vous apporte concerne l'intégration du cadre de sécurité Jasypt et du cryptage du contenu des fichiers de configuration (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Nos fichiers de configuration yml ou propriétés du projet SpringBoot sont tous en texte clair, ce qui est relativement moins sécurisé. Nous savons tous que le fichier de configuration contient un nom d'utilisateur et un mot de passe de connexion à la base de données, des clés tierces et d'autres informations. Alors soyons prudents et utilisons le cryptage.

Le framework de sécurité Jasypt est utilisé ici.

Un : introduire le paquet jar dans pom La soi-disant clé

<!-- Jasypt加密 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.0</version>
    </dependency>
Copier après la connexion

Trois : créer notre boîte à outils

Exemple de code : JasyptUtils.java

# 配置文件加密key
jasypt:
  encryptor:
    password: panther
Copier après la connexion

Quatre : Comment utiliser

La boîte à outils ci-dessus a une méthode principale, remplissez la clé que vous avez configurée, puis remplissez la valeur que vous devez chiffrer et exécutez-la directement.

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

}
Copier après la connexion
Similaire à la connexion à la base de données dans le fichier de configuration

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal