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.
<!-- Jasypt加密 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
Exemple de code : JasyptUtils.java
# 配置文件加密key jasypt: encryptor: password: panther
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==")); } }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!