Autor |
Beitrag |
Sl0w
      
Beiträge: 63
Win 7, Win 8
Delphi 2009, VS2012
|
Verfasst: Mi 02.06.10 22:32
Halo zusammen,
ich möchte mit meinem Programm aus einem String einen MD5 Hash erzeugen.
Das ganze klappt zwar auch schon aber bekomme ich einen anderen Hash dabei raus, als z.B. auf dieser Seiten
Hier
Ich habe es mit der MD5.pas versucht und auch mit anderen die ich so gefunden habe.
Mein Aufruf sieht so aus:
Delphi-Quelltext 1:
| tmpPW := md5print(md5string(Pw)); |
habe es aber auch schon so versucht:
Delphi-Quelltext 1:
| tmpPW := md5print(md5string(AnsiToUtf8(PW))); |
bringt beides das gleiche Ergebnis.
PW ist ein Übergabeparameter der Funktion vom Typ string und tmpPW ist eine Variable in der Funktion auch vom Typ string.
Ich weiß nicht ob das wichtig ist aber ich nutze Delphi 2009.
Ich weiß escht nicht was ich falsch mache.
Ich hoffe ihr könnt mir weiter helfen.
MFG
Lars
|
|
Xiut
      
Beiträge: 50
|
Verfasst: Mi 02.06.10 22:47
Benutzt du die Funktion nicht zwei mal bei einem String?
Also kommt denn bei nur
tmpPW := md5print(Pw);
denn das richtige raus? Ich kenn mich nicht damit aus also mit der pas Datei, aber das sieht halt so aus als würde das zwei mal auf einen String angewendet werden.
So verschlüsselst du doch die Verschlüsslung oder nicht?
Edit: Ach vergiss das ^^
Hab das mit dem print nicht gesehen =)
Setzt du denn eine Internetverbindung vorraus? Dann würde ich mir das einfach von dem Generator generieren lassen.
|
|
Sl0w 
      
Beiträge: 63
Win 7, Win 8
Delphi 2009, VS2012
|
Verfasst: Mi 02.06.10 23:04
Hallo Xiut,
eine Internetverbindung muss vorhanden sein.
Wie kann ich das denn an den Generator verschicken und erhalte dann den Hash zurück.
Sowas habe ich noch nie gemacht.
MFG
Lars
|
|
Xiut
      
Beiträge: 50
|
Verfasst: Mi 02.06.10 23:11
Hast du denn einen eigenen Server auf den du eine Datei hochladen kannst?
Also einen FTP Server?
|
|
Sl0w 
      
Beiträge: 63
Win 7, Win 8
Delphi 2009, VS2012
|
Verfasst: Mi 02.06.10 23:21
Nein habe ich nicht.
Das Programm schickt HTTP: Request Anfragen ab und wertet die Antwort aus.
Bei der einen Anfrage muss ich einen Benutzernamen und ein Passwort, was als md5 Hash geschickt werden muss, übertragen.
Deswegen muss eine Internetverbindung da sein.
Ich dachte man könnte das vllt. genauso an die Seite des Generators schicken!?
|
|
Xiut
      
Beiträge: 50
|
Verfasst: Mi 02.06.10 23:31
Ah ich hab gerade was gefunden: www.delphipraxis.net/post954835.html
Vielleicht hilft dir das ja.
|
|
Sl0w 
      
Beiträge: 63
Win 7, Win 8
Delphi 2009, VS2012
|
Verfasst: Do 03.06.10 00:12
Danke für den Hinweis.
Dadurch habe ich eine Lösung gefunden.
Es hat mit dem Unicode zu tun.
Hier der Link für die Lösung:
Hier
Vielen Dank an dich Xiut.
Schönen Abend noch.
|
|
TheQuestion
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 14.06.10 21:32
Ein md5-Hash kann ja auch als Hexadezimalzahl betrachtet werden (für Hashtabelle).
Wie kann ich also einen solchen hash...md5hash := MD5Print(MD5String(pattern));...in einen Integerwert umwandeln?
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 15.06.10 08:46
Gar nicht, weil ein MD5-Hash 16 Bytes (128 Bit) breit ist, ein Integer aber nur 32.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
TheQuestion
Hält's aus hier
Beiträge: 8
|
Verfasst: Di 15.06.10 17:18
BenBE hat folgendes geschrieben : | Gar nicht, weil ein MD5-Hash 16 Bytes (128 Bit) breit ist, ein Integer aber nur 32. |
Mhmm, das ist natürlich richtig. Ich möchte mit einem MD5Hash eine Modulus-Berechnung durchführen - Ich kann beim Ergebnis also von einem 32bit Integer ausgehen. Kann ich eine solche Berechnung irgendwie realisieren?
Oder vom Hash einfach eine Bitfolge abschneiden und dann in einen Integer umwandeln?
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 15.06.10 17:45
Du könntest den Hash als ein Array of Byte auffassen und dann mit einer Groß-Zahl-Bibliothek wie BigNum2 damit rechnen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Zuletzt bearbeitet von BenBE am Di 15.06.10 19:08, insgesamt 1-mal bearbeitet
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 15.06.10 18:45
Ich weiß nicht, welche md5.pas du hast.
Ich verwende die im Anhang und funktioniert problemlos.
Delphi-Quelltext 1:
| Hash:= StrMD5('meinString'); |
Einloggen, um Attachments anzusehen!
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
TheQuestion
Hält's aus hier
Beiträge: 8
|
Verfasst: Di 15.06.10 19:36
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 15.06.10 21:18
Ich versteh dein Problem nicht.
Oben sagst du, dass bei deiner Funktion nicht das herauskommt, was du online überprüfst.
Ich hab es getestest, mit der Unit kommen sowohl online, als auch in der Anwendung identische Hashes heraus.
So far..
Edit: Mein Gott..wie soll man da nicht durcheinander kommen, wenn auf einmal noch ne Frage im selben Thread auftritt -.-
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
TheQuestion
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 17.06.10 13:07
ZeitGeist87 hat folgendes geschrieben : | Edit: Mein Gott..wie soll man da nicht durcheinander kommen, wenn auf einmal noch ne Frage im selben Thread auftritt -.- |
Da hast du durchaus Recht. Ich habe einen neuen Thread geöffnet: Mit MD5 Hash rechnen .
|
|