Heim >Java >javaLernprogramm >So verschlüsselt SpringBoot das SQL-Kontokennwort der Konfigurationsdatei

So verschlüsselt SpringBoot das SQL-Kontokennwort der Konfigurationsdatei

PHPz
PHPznach vorne
2023-05-22 20:50:051277Durchsuche

1. Abhängigkeiten in das Maven-Projekt einführen

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

2 Gleichzeitig müssen Sie das Passwort in der application.yml-Konfigurationsdatei konfigurieren

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

3. Sie können die Originalinformationen im Testfall verschlüsseln. Die Verwendungsmethode ist sehr einfach. Die einfache Demo lautet wie folgt:

@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

Wie die Zeichenfolge „mysql“ oben

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

Studenten in der Entwicklung wissen alle, dass beispielsweise projektabhängige Informationen und Datenbankinformationen im Allgemeinen in Konfigurationsdateien gespeichert werden und diese alle im Klartext vorliegen muss verschlüsselt werden. Heute werde ich die Konfiguration von jasypt mit integrierter Springboot-Verschlüsselung vorstellen.

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

Eine Version wird hier bereitgestellt

<dependency>
   <groupId>com.github.ulisesbocchio</groupId>
   <artifactId>jasypt-spring-boot-starter</artifactId>
   <version>2.1.0</version>
</dependency>

So verschlüsselt SpringBoot das SQL-Kontokennwort der KonfigurationsdateiSchritt zwei: Schlüssel generieren

Suchen Sie das Jasypt-JAR-Paket in Ihrem lokalen Maven-Repository und öffnen Sie es Führen Sie es im cmd-Befehlsfenster in diesem Verzeichnis aus, wie in der Abbildung gezeigt:

So verschlüsselt SpringBoot das SQL-Kontokennwort der KonfigurationsdateiExecute

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBESTringEncryptionCLI input="test" passwort= test

algorithm=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:

So verschlüsselt SpringBoot das SQL-Kontokennwort der KonfigurationsdateiEine 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

So verschlüsselt SpringBoot das SQL-Kontokennwort der KonfigurationsdateiHier 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.)

So verschlüsselt SpringBoot das SQL-Kontokennwort der KonfigurationsdateiErlä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.

Führen Sie den Befehl aus algorithm= PBEWithMD5AndDES

Das Ergebnis ist wie unten gezeigt:

So verschlüsselt SpringBoot das SQL-Kontokennwort der KonfigurationsdateiAm 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen