Autor Beitrag
Sl0w
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 63

Win 7, Win 8
Delphi 2009, VS2012
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
tmpPW := md5print(md5string(Pw));					


habe es aber auch schon so versucht:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 63

Win 7, Win 8
Delphi 2009, VS2012
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: Mi 02.06.10 23:11 
Hast du denn einen eigenen Server auf den du eine Datei hochladen kannst?
Also einen FTP Server?
Sl0w Threadstarter
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 63

Win 7, Win 8
Delphi 2009, VS2012
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: Mi 02.06.10 23:31 
Ah ich hab gerade was gefunden: www.delphipraxis.net/post954835.html
Vielleicht hilft dir das ja.
Sl0w Threadstarter
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 63

Win 7, Win 8
Delphi 2009, VS2012
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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



BeitragVerfasst: Di 15.06.10 17:18 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Di 15.06.10 18:45 
Ich weiß nicht, welche md5.pas du hast.

Ich verwende die im Anhang und funktioniert problemlos.

ausblenden 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



BeitragVerfasst: Di 15.06.10 19:36 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Du könntest den Hash als ein Array of Byte auffassen und dann mit einer Groß-Zahl-Bibliothek wie BigNum2 damit rechnen ...
Mhmm, das ist aber sicher ziemlich langsam? Viel schneller wäre es, den String einfach auf die benötigte länge zu schneiden? Das wäre ja auch immer gleich.

user profile iconZeitGeist87 hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiß nicht, welche md5.pas du hast.

Ich verwende die im Anhang und funktioniert problemlos.

ausblenden Delphi-Quelltext
1:
Hash:= StrMD5('meinString');					
Kann ich mir ehrlich gesagt nicht ganz vorstellen, wie soll das gehen? Dazu reicht ja nichtmal ein 64bit Betriebssystem aus. Wie rechnest du dann damit?
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: 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



BeitragVerfasst: Do 17.06.10 13:07 
user profile iconZeitGeist87 hat folgendes geschrieben Zum zitierten Posting springen:
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 .