Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi in delphi 7 den md5 wert der php function md5() erhalten (https://www.delphipraxis.net/123523-delphi-7-den-md5-wert-der-php-function-md5-erhalten.html)

Tanc 3. Nov 2008 20:14


in delphi 7 den md5 wert der php function md5() erhalten
 
Hallo

Also, kann sein das mein Topic etwas wenig Aussagekräftig ist. Mir ist aber in der kürze nichts bessere eingefallen.
Mein Problem ist folgendes: ich erzeuge auf einer php seite einen md5 hash mittels der php function md5(): ( http://de.php.net/md5 ).
Dieser ist dann als String verfügbar.
Ich lade den nun über indy mit http.get runter.
Nun will ich in meinem Delphi Programm mit den selben (!) eingabe Daten wie im php script den selben md5 string bekommen.
Das klappt aber nicht, ich habe zum md5 hash erstellen und umwandeln zuerst die units von hier: http://www.delphipraxis.net/internal...?p=65677#65677
benutzt und dann noch die DEC Units ( http://www.michael-puff.de/Developer...agen_Reddmann/ ) probiert.
Alle liefern mir unterschiedliche Strings für die selben Eingaben.

Mein Ziel ist es, Zu vergleichen ob die Hashes die selben sind, oder ob ein anderer Hash gesendet wurde, obwohl die Ausgangsdaten die gleichen sind.

Die php function bietet noch die Möglichkeit sich die raw daten des md5 hashes auf eine variable speichern zu lassen, da weiß ich aber nicht wie ich sie am besten mit delphi empfange.

Gibt es irgendwie noch andere Units die md5 hashes erstellen ? Oder habt ihr noch eine Idee wie ich das Problem lösen könnte ?
Immerhin werden die md5 hashes ja alle nach dem selben rfc standard erstellt.

Tanc

ps: Sorry falls es im falschen Bereich ist, wusste nicht wo ich das am Besten unterbringe.

jfheins 3. Nov 2008 20:31

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Was bekommst du denn mit dem DEC?

Eigentlich ist MD5 festgelegt, d.h. egal welche implementierung du beutzt, es kommt imer dasselbe raus, ,für die gleichen eingangsparameter.

Was tust du rein? vll. liegt es auch daran ;)

Tanc 3. Nov 2008 20:58

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Hm, also, bei php folgendes zum testen:

<?php
echo md5("abcde");
?>
ergibt als ausgabe: ab56b4d92b40713acc5af89985d4b786

in delphi;
Delphi-Quellcode:
Edit1.Text := THash_MD5.CalcString('abcde');
Ergibt: q1a02StAcTrMWviZhdS3hg==

Dax 3. Nov 2008 21:01

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Delphi-Quellcode:
Edit1.Text := THash_MD5.CalcString('abcde', 16);
Mal wild in den Raum geraten.

Die Muhkuh 3. Nov 2008 21:04

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Delphi-Quellcode:
Edit1.Text := THash_MD5.CalcString('abcde', TFormat_Hex);
müsste es sein

Tanc 3. Nov 2008 21:42

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Edit1.Text := THash_MD5.CalcString('abcde', 16);

[Fehler] ... : Es gibt keine überladene Version von 'CalcString', die man mit diesen Argumenten aufrufen kann

Edit1.Text := THash_MD5.CalcString('abcde', TFormat_Hex);

[Fehler] ... : Undefinierter Bezeichner: 'TFormat_Hex' uRssRdr1.pas(752


oder mach ich noch was falsch ?

Die Muhkuh 3. Nov 2008 21:42

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
DECFormat-Unit einbinden, bin mir nicht sicher, ob sie so heißt, schau mal nach, in welcher Datei die Klassen TFormat_* definiert sind.

KingIR 4. Nov 2008 06:27

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Alternativ die wcrypt2-API-Header-Unit von der Jedi-Seite laden und den Rest Windows überlassen: http://irsoft.de/web/Delphi-MD5 ;) Da gibts definitiv das gleiche Ergebnis wie in PHP, vorausgesetzt natürlich der String is auch aufs Byte genau gleich.

Tanc 4. Nov 2008 16:00

Re: in delphi 7 den md5 wert der php function md5() erhalten
 
Danke für eure Hilfe, hat jetzt beides funktioniert.

Ich hatte noch ne alte Version von der DCE, da war zb die Funktion noch mit CalcString, mit 5.1 und DCEFmt.dcu gings dann. Liefert nun auch das selbe wie md5().
Die andere Version ging auch gut :)

Tanc


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz