Einzelnen Beitrag anzeigen

ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#16

AW: DEC 5.2 mit Vector deccipher Umbau von DOT net auf Delphi

  Alt 19. Mär 2013, 09:14
Vielleicht solltest Du zuerst einmal klären, welche KDF die C#-Funktion PasswordDeriveBytes verwendet. Warum verwendest Du ausgerechnet PBKDF1, das als einzige Funktion eine Maximallänge (= Hashlänge) hat? Der Originalcode kann so nicht funktioniert haben mit 128-Bit-Hash und 256-Bit-Schlüssel.
PasswordDervieBytes benutzt PBKDF1. Zu dem Warum: Hat eine Kollegin gemacht, ich habe damit nix am Hut. Da die Funktion der des OP entspricht, tippe ich mal auf "irgendwo im Netz gefunden". Laut ihrer Aussage funktioniert das Ver- und Entschlüsseln auf C#-Seite. Vielleicht sollte man ja mal den C#-Code ändern...
Bist Du sicher, daß beides mal die gleichen Eingangsdaten benutzt wurden? Insbesondere muß natürlich das Salz übereinstimmen (kein Zeitstempel, Zufall etc)!?
Die Eingangsdaten sind wirklich gleich. Feste Strings zum Testen.

Edit: Arg wie so oft sitzt das Problem vor dem Monitor
pbkdf1(hash,@Password[1], Length(password),@Salt[1],2,key,20); statt
pbkdf1(hash,@Password[1], Length(password),@Salt,2,key,20); ist des Rätsels Lösung. Der Salt-Parameter ist ja ein Pointer auf einen String. Naja, ich kann mich damit rausreden, dass ich mich bisher von Pointern fern gehalten habe, wenn es ging
Jetzt funktioniert zumindest schon einmal das Ver- und Entschlüsseln auf Delphi-Seite. Mal schauen, ob es mit den C#-Testvektoren funktioniert.
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann

Geändert von ToFaceTeKilla (19. Mär 2013 um 09:36 Uhr)
  Mit Zitat antworten Zitat