Hallo,
wer den Developer Branch von
https://github.com/MHumm/DelphiEncry...ee/development
verfolgt wird mitbekommen haben, dass die Arbeiten an der nächsten version am Laufen sind.
Nur hab' ich dazu heute mal eine Design Frage bzw. rätsele etwas herum, es ist aber auch Java im Spiel.
Ich habe eine
https://de.wikipedia.org/wiki/Bcrypt Umsetzung im Prinzip schon am Laufen,
und habe eine Klassenmethode hinzugefügt, bei denen alle Parameter als RawByteStrigns übergeben werden.
Die entsprechenden
Unit Tests mit Testdaten aus der Quelle aus der ich den Code her habe funktionieren fehlerfrei.
Nur ist da jetzt die Idee, dieselbe Methode auch mit normalem string für das zu hashende Passwort anzubieten
und da komme ich etwas ins schleudern. Delphi's string ist ja UTF16 und soweit ich weiß auch Strings in Java, richtig?
Ich dachte (hab's noch nicht getestet), dass da andere Testdaten nötig wären, weil der string ja binär anders codiert ist.
Im Wikipedia Artikel ist diese Java Bibliothek verlinkt:
http://www.mindrot.org/projects/jBCrypt/
die string als Parameter nutzt, aber genau die selben Testdaten wie ich.
Jetzt frage ich mich halt: wie kann das gehen? Zumindest damals war das wohl meistens UTF16 intern, in neueren Java Versionen sind
die wohl auf eine Mischung umgestiegen:
- für strings die nur
ASCII Zeichen enthalten wird intern ein Bytearray benutzt
- für andere Strings UTF16
Und die Frage: wie soll ich damit umgehen?
Da meine RawByteString Tests ja alle bestanden werden davon ausgehen, dass ich einfach neue Überladene Methoden mit normalen
strings schreibe und neue testdaten synthetisiere?
Grüße
TurboMagic