Also ich nehme diesen Eintrag aus der Datenbank:
$2y$10$eh6J.za3TuwGpDvUJbfR5uTBcn9MB22qx7OdgIrPEDfx0FP4thMaO
Lese somit diesen Salt Wert heraus:
"$2y$10$eh6J.za3TuwGpDvUJbfR5u"
Ich übergebe einer BCrypt Funktion das Passwort indiesem Fall "passwort" und als salt "$2y$10$eh6J.za3TuwGpDvUJbfR5u"
Die Funktion spuckt mir das hier aus ?
$2y$10$eh6J.za3TuwGpDvUJbfR5uTBcn9MB22qx7OdgIrPEDfx0FP4thMaO
die Funktion hängt den Salt Wert als Original nochmal davor an
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import org.springframework.security.crypto.bcrypt.BCrypt;
public class Main
{
public static void main(String[] args)
{
String hash="$2y$10$eh6J.za3TuwGpDvUJbfR5u";
hash.replace("$2y$","$2a$"); //die inkorrekte 2y Variante mit 2a ersetzen
String hashed = BCrypt.hashpw("passwort","$2y$10$eh6J.za3TuwGpDvUJbfR5u" );
System.out.println(hashed);
}
}
|
Folgendes Problem die Funktion akzeptiert als Typ des Salts kein $2y$10$ sondern nur $2a$10$, versuche ich als salt die 2y Variante dann bekomme ich eine "java.lang.IllegalArgumentException: Invalid salt revision" mit 2a funktioniert es einwandfrei.
Habe folgendes gefunden:
2a - the official BCrypt algorithm and a insecure implementation in crypt_blowfish
2y - suggested new marker for the fixed crypt_blowfish
Ahh ich habs, man muss einfach 2a statt 2y nehmen dann kommt der selbe hash raus, sehr gut vielen Dank für die viele Hilfe, jetzt kann ich den Mist zuende Programmieren.