Maison >Java >javaDidacticiel >Comment SpringBoot chiffre le mot de passe du compte SQL du fichier de configuration
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
car. l'outil utilise ce mot de passe crypté ou déchiffré, vous devez donc vous assurer que la chaîne cryptée dans la configuration est cryptée avec le même mot de passe, sinon elle ne sera pas déchiffrée au démarrage du projet.
jasypt: encryptor: password: 123456
. La démo simple est la suivante :
@RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration public class Test { @Autowired StringEncryptor encryptor; @Test public void getPass() { #直接调用加密的方法 String mysql = encryptor.encrypt("mysql-username|mysql-password"); } }
comme la chaîne "mysql" ci-dessus
url: ENC(mysql==) username: ENC(mysql==) password: ENC(mysql=). # 🎜🎜#Notez que ENC() est une méthode d'écriture fixe et mysql== est votre chaîne correspondante cryptée. De cette façon, vous pouvez faire semblant de crypter des informations sensibles, hahaha, pourquoi je dis faire semblant. De nombreuses personnes peuvent être déconcertées par ce problème, car le mot de passe crypté est stocké dans le fichier de configuration en texte clair et peut être facilement déchiffré par n'importe qui. Oui, c'est bien le cas. On peut dire que ce type de méthode de cryptage ne permet pas aux utilisateurs de voir le mot de passe du compte en même temps. Même si les données sont cryptées, cela n'a aucun sens une fois que le pirate informatique a obtenu l'accès à votre projet, car le cryptage n'est qu'une fausse mesure de sécurité. Il est donc le plus fondamental et le plus important d’assurer la sécurité des projets et des serveurs. OK!OK!OK! Crypter le fichier de configuration Tous les étudiants en développement le savent, comme les informations sur les dépendances du projet et les informations sur la base de données. enregistré dans le fichier de configuration et est en texte clair, il doit donc être chiffré. Aujourd'hui, je vais présenter la configuration de jasypt intégrée au chiffrement Springboot. Tout d'abord, tout cela est basé sur le principe que votre projet Springboot peut fonctionner normalement. Première étape : Ajoutez des dépendances au fichier pom, comme indiqué sur l'imageUne version est fournie ici
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
# 🎜🎜##🎜 🎜#Étape 2 : Générer la clé
Trouvez le package jar jasypt dans votre entrepôt maven local et ouvrez la fenêtre de commande cmd dans ce répertoire, comme indiqué dans l'image : #🎜🎜 #execute
java -cp jasypt-1.9.2.jar org.jasypt.intf. cli.JasyptPBESringEncryptionCLI input="test " password=testalgorithm=PBEWithMD5AndDES
où l'entrée est votre mot de passe en texte brut, ici je démontre le test, le mot de passe est votre clé privée, l'algorithme c'est une règle, ne la changez pas ! ! ! . Après exécution, cela ressemble à ceci :
Pour expliquer brièvement, la SORTIE ici est le texte chiffré (mot de passe). Voici comment copier du texte en utilisant cmd (car je ne savais pas comment copier en utilisant cmd au début) : Cliquez avec le bouton droit de la souris pour marquer et sélectionner le contenu que vous souhaitez copier, vous pourrez ensuite le copier.
Étape 3 : Ajoutez la configuration au fichier de configuration Springboot, comme indiqué dans la figure
Mais ce qui est réellement utilisé, c'est System.setProperty("jasypt.encryptor.password", "demo"); dans la classe de démarrage pour réaffecter les valeurs entre ce nœud, ce qui aidera à protéger le privé (Si quelqu'un a une meilleure solution, veuillez laisser un message à temps et discutons-en ensemble.)
Remarque : le premier mot de passe dans l'image ci-dessus correspond au mot de passe dans ARGUMENTS dans la deuxième étape, le deuxième mot de passe correspond au résultat dans OUTPUT dans la deuxième étape, et le formulaire doit être ajouté avec ENC (votre mot de passe), comme le montre la figure.
Étape 4 : Décrypter le mot de passe via la commande
Exécuter la commande#🎜🎜 ##🎜🎜 #Au final, l'intégration de springboot et jasypt est terminée Cela semble assez simple à mettre en œuvre, haha. Mais une chose à noter est que vous ne devez pas divulguer votre fichier de configuration (en particulier le mot de passe dans ARGUMENTS, qui est équivalent à la clé privée), sinon d'autres pourraient décrypter votre mot de passe via la quatrième étape. Il est recommandé de mettre le fichier de configuration dans. Centre 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!