Salted BCrypt Hashes erstellen und prüfen
In diesem Tutorial erfahren Sie, wie Sie Salted BCrypt-Hashes mit dem BCrypt Calculator Adapter in der X4 Suite erstellen und überprüfen.
BCrypt ist eine Passwort-Hashfunktion, die ein Salt enthält, um das Passwort vor Angriffen zu schützen. Für zusätzliche Sicherheit wird die Funktion deutlich verlangsamt, wenn sie häufig hintereinander ausgeführt werden soll. Die Funktion ist adaptiv und passt sich an schnellere Hardware an. So kann die höhere Geschwindigkeit kompensiert werden und es besteht auch bei schneller Hardware Schutz vor Brute-Force-Angriffen.
Mit dem Adapter Bcrypt Calculator können wir Salted BCrypt-Hashes in technischen Prozessen erzeugen und verifizieren. Dieses Tutorial enthält drei Beispiele, wie der Adapter verwendet werden kann:
- Neuen Hash-Wert erstellen
- Passwort gegen einen Hash-Wert prüfen
- Passwort prüfen und aktualisieren
Inhaltsverzeichnis
Case
Arbeiten mit Adaptern
X4 Suite-Komponenten
X4 Suite-Adapter
Branchen
Branchenübergreifend
Sie können ein Template zu diesem Tutorial über den Button herunterladen. Entpacken Sie einfach die .zip
-Datei und ziehen Sie das Template mit der Dateiendung .x4projecttemplate
per Drag & Drop in den Repository Navigator des X4 Designers.
Neuen Hash-Wert erstellen
Im ersten Beispiel möchten wir ein neues Salted BCrypt Hash erzeugen. Das dafür benötigte Passwort erhalten wir als Klartext.
Projekt erstellen
Zunächst erstellen wir ein neues ESB-Projekt. Um ein neues ESB-Projekt zu erstellen, klicken Sie im X4 Designer auf File > New > ESB Project.

- Der Project Creation Wizard öffnet sich.
Geben Sie für Project name BCryptCalculator
ein.
- Ein neues ESB-Projekt wird angelegt.
Ein Projektname (Project name) darf kein Leerzeichen enthalten!
Für unseren Prozess, mit dem wir aus einem Passwort im Klartext einen Hash-Wert generieren, benötigen wir mehrere Elemente:
- Adapter BCrypt Calculator CreateHash.fa
Mit diesem Adapter erzeugen wir einen neuen Hash-Wert. - XML-Datei NewHash.xml
In dieser XML-Datei speichern wir das generierte Salted BCrypt Hash.
Adapter CreateHash erstellen
Diese Elemente legen wir nun an. Wir beginnen mit dem Adapter BCrypt Calculator. Klicken Sie im Repository Navigator mit der rechten Maustaste im ESB-Projekt BCrypt Calculator auf den Ordner Adapters, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > Adapter.
- Der File Creation Wizard öffnet sich.

Wählen Sie den Adapter BCrypt Calculator aus.
Sie können den Adapter über das Suchfeld im oberen Bereich des File Creation Wizard suchen.
Geben Sie als File name CreateHash.fa
ein.
Um den Adapter anzulegen, klicken Sie auf Finish.
- Der Adapter wird angelegt und geöffnet.
Stellen Sie den Adapter wie folgt ein:
Parameter | Wert | Beschreibung |
---|---|---|
clearText | MyPassword |
Passwort im Klartext |
Speichern Sie den Adapter, indem Sie in der Werkzeugleiste auf Speichern bzw. Alle Speichern klicken:
Sie können Ihre Änderungen auch mit Strg+S speichern.
XML-Datei NewHash erstellen
Für unseren Prozess benötigen wir noch eine Datei, in der wir den neuen Hash-Wert abspeichern können, die XML-Datei NewHash.xml. Klicken Sie im Repository Navigator mit der rechten Maustaste im ESB-Projekt BCrypt Calculator auf den Ordner Resources, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > XML Document.

- Der File Creation Wizard öffnet sich.
Geben Sie für File name NewHash.xml
ein.
Um die Datei zu erzeugen, klicken Sie auf Finish.
- Die XML-Datei wird erzeugt und im Repository Navigator angezeigt.
Die Datei hat außer der XML-Deklaration und einem Wurzelelement keinen Inhalt. Der Inhalt wird später durch den Prozess erzeugt und geschrieben.
Prozess CreateNewHash erstellen
Die eben erzeugen Elemente wollen wir nun in einem Prozess zusammenführen. Dafür müssen wir in unserem ESB-Projekt einen Prozess anlegen. Klicken Sie im Repository Navigator mit der rechten Maustaste im ESB-Projekt BCrypt Calculator auf den Ordner Processes, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > Process.

- Der File Creation Wizard öffnet sich.
Wählen Sie ein leeres Template und geben Sie als File name CreateNewHash.wrf
ein.
Um den Prozess zu erstellen, klicken Sie auf Finish.
- Der Prozess wird erstellt und angezeigt.
Fügen Sie die benötigten Elemente per Drag & Drop aus dem Repository Navigator zum Prozess hinzu:
- CreateHash.fa
- NewHash.xml
Der Prozess sieht nun so aus:

Nun müssen wir die einzelnen Bausteine noch konfigurieren. Wählen Sie den linken Adapter CreateHash aus, indem Sie darauf klicken.
In der linken unteren Ecke werden Ihnen die Properties (Eigenschaften) dieses Bausteins angezeigt. Stellen Sie die Properties wie folgt ein. Bestätigen Sie die jeweilige Eingabe, indem Sie die Enter-Taste drücken.
Property | Wert | Beschreibung |
---|---|---|
Label | Create Hash |
Beschriftung des Bausteins |
Operation | GenerateHash |
Operation, die durch den Adapter ausgeführt wird. |
Wählen Sie die XML-Datei NewHash aus, indem Sie darauf klicken.
In der linken unteren Ecke werden Ihnen die Properties (Eigenschaften) dieses Bausteins angezeigt. Stellen Sie die Properties wie folgt ein. Bestätigen Sie die jeweilige Eingabe, indem Sie die Enter-Taste drücken.
Property | Wert | Beschreibung |
---|---|---|
Label | New Hash |
Beschriftung des Bausteins |
Operation | Write |
Bestimmt, ob die Datei geschrieben oder gelesen wird. |
Nicht erwähnte Properties müssen Sie nicht anpassen.
Wir setzen die Operation der XML-Datei NewHash auf Write, damit wir die vom Adapter erzeugte XML-Datei, die den generierten Hash-Wert enthält, abspeichern können. Jedes Mal, wenn ein neuer Output durch den Adapter generiert wird, wird die Datei überschrieben.
Unser Prozess sieht nun so aus:

Prozess CreateNewHash testen
Jetzt möchten wir natürlich wissen, ob unser Prozess funktioniert und ob das eingegebene Passwort richtig umgewandelt wird.
Klicken Sie in der Werkzeugleiste des X4 Designer auf Start Debugging.

Wir können den Prozess Schritt für Schritt (1, Resume) oder auf einmal (2, Step into / Step over) ausführen lassen.

Sobald der Prozess beendet ist, können wir prüfen, ob der Adapter eine XML-Datei ausgegeben hat, die den Hash-Wert enthält. Um die XML-Datei zu öffnen, klicken Sie doppelt auf den Baustein New Hash in unserem Prozess CreateNewHash.
- Die eben im Prozess erzeugte und abgespeicherte XML-Datei wird geöffnet und hat folgende Struktur:
<?xml version="1.0" encoding="UTF-8"?> <Hash>$2a$10$cwbHiB99latW7TsPTyOJ7.xmjt4btCaGA7ZBri/gcwjkHeWOw4kUG</Hash>
Falls etwas im Prozess nicht wie erwartet funktioniert, können wir den Prozess im Debug-Modus Schritt für Schritt überprüfen. Für jeden Schritt können wir uns die Ausgaben jedes einzelnen Prozessbausteins ansehen. Dazu müssen wir nur auf das kleine Symbol oben rechts neben dem Baustein klicken:

Kennwort gegen einen Hash-Wert verifizieren
In diesem Beispiel verifizieren wir ein Kennwort im Klartext gegen einen bestimmten Hash-Wert.
Projekt erstellen
Für unser Beispiel benötigen wir ein ESB-Projekt. Sie können entweder ein neues ESB-Projekt anlegen (siehe Neuen Hash-Wert erstellen) oder in unserem vorhandenen Projekt BCryptCalculator weiterarbeiten.
Für unseren Prozess, mit dem wir ein Passwort im Klartext gegen einen Hash-Wert prüfen, benötigen wir mehrere Elemente:
- Adapter BCrypt Calculator VerifyPassword.fa
Mit diesem Adapter verifizieren wir ein Kennwort gegen einen Hash-Wert. - XML-Datei VerifyResult.xml
Wird verwendet, um das Ergebnis der Prüfung zu speichern.
Adapter VerifyPassword erstellen
Diese Elemente legen wir nun an. Wir beginnen mit dem Adapter BCrypt Calculator. Klicken Sie im Repository Navigator mit der rechten Maustaste im aktuellen ESB-Projekt auf den Ordner Adapters, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > Adapter.

- Der File Creation Wizard öffnet sich.
Wählen Sie den Adapter BCrypt Calculator aus.
Geben Sie als File name VerifyPassword.fa
ein.
Um den Adapter anzulegen, klicken Sie auf Finish.
- Der Adapter wird angelegt und geöffnet.
Sie können den Adapter über das Suchfeld im oberen Bereich des File Creation Wizard suchen.
Stellen Sie den Adapter wie folgt ein:
Parameter | Wert | Beschreibung |
---|---|---|
clearText | MyPassword |
Passwort im Klartext |
bcryptHash | Salted BCrypt-Hash |
Salted BCrypt-Hash, der mit dem Klartext-Passwort verglichen werden soll. |
Der Wert, der für den Parameter bcryptHash eingegeben wird, muss zum eingegebenen Passwort passen. Um ein positives Validierungsergebnis zu erhalten, verwenden wir die Werte aus dem ersten Beispiel. Sie können den Hash-Wert einfach aus der Datei NewHash.xml kopieren (Zeichenfolge zwischen <Hash>
und </Hash>
).
Speichern Sie den Adapter, indem Sie in der Werkzeugleiste auf Speichern bzw. Alle Speichern klicken:

Sie können Ihre Änderungen auch mit Strg+S speichern.
XML-Datei VerificationResult erstellen
Für unseren Prozess benötigen wir noch eine Datei, in der wir das Ergebnis der Verifikation abspeichern können, dieS XML-Datei VerificationResult.xml. Klicken Sie im Repository Navigator mit der rechten Maustaste im aktuellen ESB-Projekt auf den Ordner Resources, um das Kontextmenü zu öffnen.

- Das Kontextmenü öffnet sich.
Klicken Sie auf New > XML Document.
- Der File Creation Wizard öffnet sich.
Geben Sie für File name VerificationResult.xml
ein.
Um die Datei zu erzeugen, klicken Sie auf Finish.
- Die XML-Datei wird erzeugt und im Repository Navigator angezeigt.
Die Datei enthält außer der XML-Deklaration und einem Wurzelelement keinen Inhalt. Der Inhalt wird später durch den Prozess erzeugt und geschrieben.
Prozess VerifyPassword erstellen
Die eben erzeugen Elemente wollen wir nun in einem Prozess zusammenführen. Dafür müssen wir in unserem ESB-Projekt einen Prozess anlegen. Klicken Sie im Repository Navigator mit der rechten Maustaste im aktuellen ESB-Projekt auf den Ordner Processes, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > Process.

- Der File Creation Wizard öffnet sich.
Wählen Sie ein leeres Template und geben Sie als File name VerifyPassword.wrf
ein.
Um den Prozess zu erstellen, klicken Sie auf Finish.
- Der Prozess wird erstellt und angezeigt.
Fügen Sie die benötigten Elemente per Drag & Drop aus dem Repository Navigator zum Prozess hinzu:
- VerifyPassword.fa
- VerificationResult.xml
Der Prozess sieht nun so aus:

Nun müssen wir die einzelnen Bausteine noch konfigurieren. Wählen Sie den linken Adapter VerifyPassword aus, indem Sie darauf klicken.
In der linken unteren Ecke werden Ihnen die Properties (Eigenschaften) dieses Bausteins angezeigt. Stellen Sie die Properties wie folgt ein. Bestätigen Sie die jeweilige Eingabe, indem Sie die Enter-Taste drücken.
Property | Wert | Beschreibung |
---|---|---|
Label | Verify Password |
Beschriftung des Bausteins |
Operation | Verify |
Operation, die durch den Adapter ausgeführt wird. |
Wählen Sie die XML-Datei VerificationResult aus, indem Sie darauf klicken.
In der linken unteren Ecke werden Ihnen die Properties (Eigenschaften) dieses Bausteins angezeigt. Stellen Sie die Properties wie folgt ein. Bestätigen Sie die jeweilige Eingabe, indem Sie die Enter-Taste drücken.
Property | Wert | Beschreibung |
---|---|---|
Label | Verification Result |
Beschriftung des Bausteins |
Operation | Write |
Bestimmt, ob die Datei geschrieben oder gelesen wird. |
Nicht erwähnte Properties müssen Sie nicht anpassen.
Wir setzen die Operation der XML-Datei VerifyPassword auf Write, damit wir die vom Adapter erzeugte XML-Datei, die den generierten Hash-Wert enthält, abspeichern können. Jedes Mal, wenn ein neuer Output durch den Adapter generiert wird, wird die Datei überschrieben.
Unser Prozess sieht nun so aus:

Prozess VerifyPassword testen
Jetzt möchten wir natürlich wissen, ob unser Prozess funktioniert und ob das eingegebene Passwort richtig umgewandelt wird.
Klicken Sie in der Werkzeugleiste des X4 Designer auf Start Debugging.

Wir können den Prozess Schritt für Schritt (1, Resume) oder auf einmal (2, Step into / Step over) ausführen lassen.

Sobald der Prozess beendet ist, können wir prüfen, ob der Adapter eine XML-Datei ausgegeben hat, die den Hash-Wert enthält. Um die XML-Datei zu öffnen, klicken Sie doppelt auf den Baustein VerificationResult in unserem Prozess VerifyPassword.
- Die eben im Prozess erzeugte und abgespeicherte XML-Datei wird geöffnet und hat folgende Struktur:
<?xml version="1.0" encoding="UTF-8"?> <Ok>The cleartext string matches the hash</Ok>
Der Output für eine fehlgeschlagene Verfikation wäre folgender:
<?xml version="1.0" encoding="UTF-8"=> <Error>The cleartext string does not match the hash.</Error>
Weitere Informationen zum Verhalten des Adapters finden Sie im Handbuch zur X4 Suite unter „BCrypt Calculator“
Falls etwas im Prozess nicht wie erwartet funktioniert, können wir den Prozess im Debug-Modus Schritt für Schritt überprüfen. Für jeden Schritt können wir uns die Ausgaben jedes einzelnen Prozessbausteins ansehen. Dazu müssen wir nur auf das kleine Symbol oben rechts neben dem Baustein klicken:

Passwort aktualisieren
In diesem Beispiel verifizieren wir ein Passwort gegen einen Hash-Wert. Wenn die Verifikation erfolgreich ist, dann aktualisieren wir das Kennwort.
Projekt erstellen
Für unser Beispiel benötigen wir ein ESB-Projekt. Sie können entweder ein neues ESB-Projekt anlegen (siehe Neuen Hash-Wert erstellen) oder in unserem vorhandenen Projekt BCryptCalculator weiterarbeiten.
Für unseren Prozess, mit dem wir ein Passwort im Klartext gegen eiinen Hash-Wert prüfen, benötigen wir mehrere Elemente:
- Adapter BCrypt Calculator UpdatePassword.fa
Mit diesem Adapter aktualisieren wir ein Kennwort. - XML-Datei UpdatedHash.xml
Wird verwendet, um das aktualisierte Passwort zu speichern.
Adapter UpdatePassword erstellen
Diese Elemente legen wir nun an. Wir beginnen mit dem Adapter BCrypt Calculator. Klicken Sie im Repository Navigator mit der rechten Maustaste im aktuellen ESB-Projekt auf den Ordner Adapters, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > Adapter.

- Der File Creation Wizard öffnet sich.
Wählen Sie den Adapter BCrypt Calculator aus.
Geben Sie als File name UpdatePassword.fa
ein.
Um den Adapter anzulegen, klicken Sie auf Finish.
- Der Adapter wird angelegt und geöffnet.
Sie können den Adapter über das Suchfeld im oberen Bereich des File Creation Wizard suchen.
Stellen Sie den Adapter wie folgt ein:
Parameter | Wert | Beschreibung |
---|---|---|
clearText | MyPassword |
Passwort im Klartext |
bcryptHash | Salted BCrypt-Hash |
Salted BCrypt-Hash, der mit dem Klartext-Passwort verglichen werden soll. |
newClearText | MyNewPassword |
Neues Passwort im Klartext |
Der Wert, der für den Parameter bcryptHash eingegeben wird, muss zum eingegebenen Passwort passen. Um ein positives Validierungsergebnis zu erhalten, verwenden wir die Werte aus dem ersten Beispiel. Sie können den Hash-Wert einfach aus der Datei NewHash.xml kopieren (Zeichenfolge zwischen <Hash>
und </Hash>
).
Speichern Sie den Adapter, indem Sie in der Werkzeugleiste auf Speichern bzw. Alle Speichern klicken:
Sie können Ihre Änderungen auch mit Strg+S speichern.
XML-Datei UpdatedHash erstellen
Für unseren Prozess benötigen wir noch eine Datei, in der wir das Ergebnis der Verifikation abspeichern können, die XML-Datei UpdatedHash.xml. Klicken Sie im Repository Navigator mit der rechten Maustaste im aktuellen ESB-Projekt auf den Ordner Resources, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > XML Document.

- Der File Creation Wizard öffnet sich.
Geben Sie für File name UpdatedHash.xml
ein.
Um die Datei zu erzeugen, klicken Sie auf Finish.
- Die XML-Datei wird erzeugt und im Repository Navigator angezeigt.
Die Datei enthält außer der XML-Deklaration und einem Wurzelelement keinen Inhalt. Der Inhalt wird später durch den Prozess erzeugt und geschrieben.
Prozess UpdatePassword erstellen
Die eben erzeugen Elemente wollen wir nun in einem Prozess zusammenführen. Dafür müssen wir in unserem ESB-Projekt einen Prozess anlegen. Klicken Sie im Repository Navigator mit der rechten Maustaste im aktuellen ESB-Projekt auf den Ordner Processes, um das Kontextmenü zu öffnen.
- Das Kontextmenü öffnet sich.
Klicken Sie auf New > Process.

- Der File Creation Wizard öffnet sich.
Wählen Sie ein leeres Template und geben Sie als File name UpdatePassword.wrf
ein.
Um den Prozess zu erstellen, klicken Sie auf Finish.
- Der Prozess wird erstellt und angezeigt.
Fügen Sie die benötigten Elemente per Drag & Drop aus dem Repository Navigator zum Prozess hinzu:
- UpdatePassword.fa
- UpdatePassword.xml
Der Prozess sieht nun so aus:

Nun müssen wir die einzelnen Bausteine noch konfigurieren. Wählen Sie den linken Adapter UpdatePassword aus, indem Sie darauf klicken.
In der linken unteren Ecke werden Ihnen die Properties (Eigenschaften) dieses Bausteins angezeigt. Stellen Sie die Properties wie folgt ein. Bestätigen Sie die jeweilige Eingabe, indem Sie die Enter-Taste drücken.
Property | Wert | Beschreibung |
---|---|---|
Label | Update Password |
Beschriftung des Bausteins |
Operation | VerifyAndReplace |
Operation, die durch den Adapter ausgeführt wird. |
Wählen Sie die XML-Datei UpdatedHash aus, indem Sie darauf klicken.
In der linken unteren Ecke werden Ihnen die Properties (Eigenschaften) dieses Bausteins angezeigt. Stellen Sie die Properties wie folgt ein. Bestätigen Sie die jeweilige Eingabe, indem Sie die Enter-Taste drücken.
Property | Wert | Beschreibung |
---|---|---|
Label | Updated Hash |
Beschriftung des Bausteins |
Operation | Write |
Bestimmt, ob die Datei geschrieben oder gelesen wird. |
Nicht erwähnte Properties müssen Sie nicht anpassen.
Wir setzen die Operation der XML-Datei UpdatedHash auf Write, damit wir die vom Adapter erzeugte XML-Datei, die den generierten Hash-Wert enthält, abspeichern können. Jedes Mal, wenn ein neuer Output durch den Adapter generiert wird, wird die Datei überschrieben.
Unser Prozess sieht nun so aus:

Prozess UpdatePassword testen
Jetzt möchten wir natürlich wissen, ob unser Prozess funktioniert und ob das eingegebene Passwort richtig umgewandelt wird.
Klicken Sie in der Werkzeugleiste des X4 Designer auf Start Debugging.

Wir können den Prozess Schritt für Schritt (1, Resume) oder auf einmal (2, Step into / Step over) ausführen lassen.

Sobald der Prozess beendet ist, können wir prüfen, ob der Adapter eine XML-Datei ausgegeben hat, die den Hash-Wert enthält. Um die XML-Datei zu öffnen, klicken Sie doppelt auf den Baustein UpdateHash in unserem Prozess UpdatePassword.
- Die eben im Prozess erzeugte und abgespeicherte XML-Datei wird geöffnet und hat folgende Struktur:
<?xml version="1.0" encoding="UTF-8"?> <NewPassword>$2a$10$CFDxoiyEIiZwKbXicpW3neJ2UuQK1D8BUt.7RCdYqrs3VhfFnxUOi</NewPassword>
Falls etwas im Prozess nicht wie erwartet funktioniert, können wir den Prozess im Debug-Modus Schritt für Schritt überprüfen. Für jeden Schritt können wir uns die Ausgaben jedes einzelnen Prozessbausteins ansehen. Dazu müssen wir nur auf das kleine Symbol oben rechts neben dem Baustein klicken:
