Nous utilisons la dernière version de jasypt pour crypter et décrypter les informations sensibles.
1. Ajoutez les dépendances suivantes au fichier pom du projet :
com.github.ulisesbocchio jasypt-spring-boot-starter 3.0.3
2. Créez une classe publique de chiffrement et de déchiffrement :
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); } }
3. Dans le yml En plus des méthodes ci-dessus, les méthodes suivantes peuvent également être utilisées pour chiffrer les informations sensibles dans les fichiers.
Entrez le répertoire de dépendances jasypt Ici, utilisez la dernière version de jasypt, jasypt-1.9.3.jar, et exécutez la commande cmd
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="mypassword" password=mypassword algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator
#. ## #Le texte chiffré sous OUTPUT dans l'image est le texte chiffré. Copiez-le simplement dans le fichier de configuration. Lors du déchiffrement, utilisez le code
2.Parmi eux :
saisie : mot de passe en texte brut
mot de passe : sel à ajouter, clé secrètealgorithme : algorithme de chiffrement
# Les algorithmes de #Encryption incluent les éléments suivants :
PBEWITHHMACSHA1ANDAES_128
PBEWITHHMACSHA1ANDAES_256PBEWITHHMACSHA224ANDAES_128# #PBEWITHHMACSHA2 24ANDAES_256PBEWITHHMACSHA256ANDAES_128
PBEWITHHMACSHA256ANDAES_256# #PBEWITHHMACSHA384ANDAES_128
PBEWITHHMACSHA384ANDAES_256
PBEWITHHMACSHA512ANDAES_128
PBEWITHHMACSHA512ANDAES_256
PBEWI THMACSHA512ANDAES_256# #PBEWITHSHA1ANDRC2_40
PBEWITHSHA1ANDRC4_128
PBEWITHSHA1ANDRC4_40
4. Si la version de jdk utilisée est java1.8 ou java8, alors vous devez mettre à niveau le jre et le jdk correspondant
Vous devez télécharger jce-policy-8 .zip, après le téléchargement, décompressez-le , il contient la méthode de mise à niveau.
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!
Étapes de création du projet SpringBoot
Quelle est la différence entre j2ee et springboot
Comment installer WordPress après l'avoir téléchargé
Résumé du plug-in du navigateur Firefox
Comment exécuter cmd en tant qu'administrateur
Tri des tableaux JS : méthode sort()
Comment résoudre l'erreur d'application WerFault.exe
Comment télécharger du HTML