Heim >Java >javaLernprogramm >So verschlüsselt SpringBoot das SQL-Kontokennwort der Konfigurationsdatei
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
Da das Tool dieses Passwort zum Verschlüsseln oder Entschlüsseln verwendet, müssen Sie sicherstellen, dass das Die verschlüsselte Zeichenfolge in der Konfiguration lautet: Zum Verschlüsseln dasselbe Kennwort verwenden, andernfalls wird sie beim Starten des Projekts nicht entschlüsselt.
jasypt: encryptor: password: 123456
@RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration public class Test { @Autowired StringEncryptor encryptor; @Test public void getPass() { #直接调用加密的方法 String mysql = encryptor.encrypt("mysql-username|mysql-password"); } }
4. Zum Schluss fügen Sie einfach die verschlüsselte Zeichenfolge in die Konfigurationsdatei ein
url: ENC(mysql==) username: ENC(mysql==) password: ENC(mysql=)
Beachten Sie, dass ENC() eine feste Schreibweise ist, mysql= = ist Ihre Verschlüsselung. Die entsprechende Zeichenfolge danach.
Auf diese Weise können Sie so tun, als würden Sie vertrauliche Informationen verschlüsseln, hahaha, warum ich so sage, als ob. Dieses Problem könnte viele Menschen verwirren, da das verschlüsselte Passwort im Klartext in der Konfigurationsdatei gespeichert ist und von jedem leicht entschlüsselt werden kann.
Ja, das ist tatsächlich so. Man kann nur sagen, dass diese Art der Verschlüsselungsmethode es niemandem ermöglicht, das Kontopasswort sofort zu sehen.
Selbst wenn die Daten verschlüsselt sind, sind sie bedeutungslos, nachdem der Hacker Zugriff auf Ihr Projekt erhalten hat, da die Verschlüsselung lediglich eine falsche Sicherheitsmaßnahme ist. Daher ist es am grundlegendsten und wichtigsten, die Sicherheit von Projekten und Servern zu gewährleisten.
OK!OK!OK!
Verschlüsseln Sie die Konfigurationsdatei
Zuallererst basieren diese alle auf der Voraussetzung, dass Ihr Springboot-Projekt normal laufen kann.
Schritt eins: Abhängigkeiten zur POM-Datei hinzufügen, wie im Bild gezeigt
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
Schritt zwei: Schlüssel generieren
Execute
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test" passwort= testalgorithm=PBEWithMD5AndDES
Eingabe ist Ihr Klartext-Passwort, hier demonstriere ich test, Passwort ist Ihr privater Schlüssel, dieser Algorithmus ist eine Regel, ändern Sie ihn nicht! ! ! . Nach der Ausführung sieht es so aus:
Eine kurze Erklärung, das OUTPUT ist hier der verschlüsselte Chiffretext (Passwort). So kopieren Sie Text mit cmd (da ich am Anfang nicht wusste, wie man mit cmd kopiert): Klicken Sie mit der rechten Maustaste, um den Inhalt zu markieren und auszuwählen, den Sie kopieren möchten. Anschließend können Sie ihn kopieren.
Schritt 3: Konfiguration zur Springboot-Konfigurationsdatei hinzufügen, wie in der Abbildung gezeigt
Hier verwende ich die Datei application.yml und die Datei application.properties wird wie folgt geschrieben: jasypt.encryptor.password=test .
Aber was tatsächlich verwendet wird, ist System.setProperty("jasypt.encryptor.password", "demo"); in der Startup-Klasse, um den Wert zwischen diesem Knoten neu zuzuweisen, was dazu beiträgt, den privaten Schlüssel wieder zu schützen (falls jemand mehr hat). Informationen) Wenn Sie eine gute Lösung haben, hinterlassen Sie bitte rechtzeitig eine Nachricht und lassen Sie uns diese gemeinsam besprechen.)
Erläuterung: Das erste Passwort im obigen Bild entspricht dem Passwort in ARGUMENTS im zweiten Schritt und dem zweiten Das Passwort entspricht dem Ergebnis in OUTPUT im zweiten Schritt. Das Formular muss ENC (Ihr Passwort) enthalten, wie in der Abbildung gezeigt.
Schritt 4: Entschlüsseln Sie das Passwort mit dem Befehl.
Am Ende ist die Integration von Springboot und Jasypt abgeschlossen, es scheint ziemlich einfach zu implementieren zu sein, haha. Beachten Sie jedoch, dass Sie Ihre Konfigurationsdatei (insbesondere das Passwort in ARGUMENTS, das dem privaten Schlüssel entspricht) nicht preisgeben dürfen, da andere Ihr Passwort sonst im vierten Schritt entschlüsseln können. Es wird empfohlen, die Konfigurationsdatei einzugeben Konfigurationszentrum
Das obige ist der detaillierte Inhalt vonSo verschlüsselt SpringBoot das SQL-Kontokennwort der Konfigurationsdatei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!