Forum: PC-Programmierung BCrypt.NET Entschlüsselung


von Dominik L. (Gast)


Lesenswert?

Guten Tag Zusammen,

ich hab grade ein Problem, zudem ich keine Richtige Lösung finde. Auch 
Google etc. war bis dato erfolglos.

Hier das Problem:
Ich habe eine Datenbank mit einem Joomla CMS. In Joomla werden die 
Benutzer-Passwörter per BCrypt verschlüsselt. Ich möchte nun in einer C# 
Applikation diese Tabelle nutzen um damit ein Login zu errichten. Dazu 
kommt BCrypt.NET zum Einsatz. (https://bcrypt.codeplex.com/)

Hierbei gehe ich nun So vor:
1
//Daten aus Joomla: $2y$10$aBoeOIfm6uHL71GMNhxoget9YlBI8/JMKyt95x/RmsP2FVHMboruG
2
string myPassword = "12345"; //Passwort nicht verschlüsselt
3
4
string mySalt = BCrypt.Net.BCrypt.GenerateSalt();
5
mySalt = "$2y$10$aBoeOIfm6uHL71GMNhxoge"; //Das Salt (29.Erste Zeichen)
6
7
string myHash = BCrypt.Net.BCrypt.HashPassword(myPassword, mySalt);
8
9
bool doesPasswordMatch = BCrypt.Net.BCrypt.Verify(myPassword, myHash);

Wenn ich das ausführe bekomme ich von der BCrypt.NET Lib. eine "Invalid 
salt revision" Exception.

Jetzt ist mir aufgefallen, das Joomla hier den BCrypt Algorithmus mit 
"$2y$" Auswählt. Dies ist laut vielen Aussagen 
(https://pythonhosted.org/passlib/lib/passlib.hash.bcrypt.html) 
äquivalent zu "$2a$" was der momentane Standard ist.
Wenn ich jetzt aber im Code das Salt ändere:
1
mySalt = "$2a$10$aBoeOIfm6uHL71GMNhxoge"; //Das Salt (29.Erste Zeichen)

Gibt mir die BCrypt.Verify(myPassword, myHash); ständig True zurück...

Hat sich jemand schon mal damit auseinander gesetzt und eine Lösung 
gefunden? Bzw. ist mein Gedanke bei der Vorgehensweise falsch?

Mit freundlichen Grüßen
Dominik

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.