Autor Beitrag
Cyberaxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Mi 21.12.11 00:37 
Hallo

Mittlerweile bin ich seit einer ganzen weile am Suchen, hier, DP, Google aber wirklich fündig bin ich nicht geworden.

Ich suche eine funktionierende Version um einen MD5 Hash zu erzeugen unter Delphi 2010 und das ohne eine ganze Tool Sammlung zu installieren.

Sämtliche Anpassungen an den bekannten MP5.pas sind leider fehlgeschlagen sie stimmen einfach nicht mit der von MYSQL überein.

Hat hier vllt. jemand eine Lösung ohne eben eine ganze Sammlung zu installieren?

MfG Cyber

_________________
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 21.12.11 00:49 
Wie wäre es mit Indy (TIdHashMessageDigest5 aus IdHashMessageDigest)? Das ist schließlich schon mit Delphi mitgeliefert und sollte daher am einfachsten sein. ;-)
Cyberaxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Mi 21.12.11 08:38 
In all den Stunden die ich gesucht habe, ist niemand auf die Idee gekommen an gegebenfalls mal an die Indies zu denken.
Es kam mal auf das ich glaube etwas von Fundamentals glaube ich. So viel wollte ich natürlich nicht installieren.

Die md5.pas war halt recht einfach gehalten.

Ich werde mir nachher mal die Unit von den Indies anschauen. Danke erstmal.

_________________
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 21.12.11 08:55 
Die Unit, die ich dafür mal hier im Forum gefunden habe, führte sämtliche Berechnungen auf eine Funktion zurück, die als Parameter nur einen Pointer und eine Länge erwartet hat. Diese Unit konnte man dann einfach so Unicodefähig machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
function MD5UnicodeString(const S: UnicodeString): TMD5Digest;
begin
  Result := MD5Buffer(PWideChar(S)^, Length(S) * sizeOf(WideChar));
end;


Und wenn das nicht mit dem Hash von MYSQL übereinstimmt, dann könnte man sowas probieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
function MD5UTF8String(const S: UTF8String): TMD5Digest;
begin
  Result := MD5Buffer(PAnsiChar(S)^, Length(S));
end;

_________________
We are, we were and will not be.
Cyberaxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Mi 21.12.11 09:13 
:)

Hast denn die Unit noch? Sitze gerade auf der Arbeit und habe kein Delphi vor mir.
Habe halt bei meiner auch schon einiges versucht anzupassen nachdem was ich so gelesen hatte.
Letzteres war dann, das ich eine andere md5.pas genommen habe aber die schon beim kompilieren Probleme machte.

_________________
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 21.12.11 11:03 
Wo ich die genau gefunden habe, weiß ich nicht mehr, und die Seite, die im Quellcode vermerkt ist, gibt es nicht mehr. Die ist aber im Anhang in diesem Topic dabei. Da habe ich die iirc um die UTF8-Variante erweitert.

_________________
We are, we were and will not be.
Cyberaxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Mi 21.12.11 20:18 
Es funktioniert :)

Warum ist der MD5 String eigentlich uppercase? Ich mein wenn ich mir dagegen die MD5 von MySQL anschaue ist dort alles Lowercase

_________________
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 21.12.11 21:31 
Das ist vollkommen egal, da es sich um hexadezimale Ziffern handelt. ;-)
Cyberaxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Mi 21.12.11 21:35 
Ja und Nein

Wenn ich
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
Format('SELECT * FROM users WHERE username = %s', [UserName]);
...
if MD5String(Passwort) = DataSource.DataSet.FieldByName('password').AsString then begin
...
end;


versuche gehts natürlich in die Hose. Auch wen ndas nun kein schönes Beispiel ist, so ist es ja nunmal so.
Hab nun einfach nen lowerCase davor gesetzt und meine Welt ist wieder in Ordnung :)

_________________
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 22.12.11 00:05 
Wie wäre es zum Vergleich mit AnsiSameText? :zwinker:
Cyberaxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Do 22.12.11 18:40 
Da gefällt mir LowerCase aber doch schon besser :)

ausblenden Delphi-Quelltext
1:
AnsiSameText(Str1, Str2) =					


<>

ausblenden Delphi-Quelltext
1:
str1 = str2					

_________________
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Fr 23.12.11 02:21 
user profile iconCyberaxx hat folgendes geschrieben Zum zitierten Posting springen:


ausblenden Delphi-Quelltext
1:
AnsiSameText(Str1, Str2) =					


<>

ausblenden Delphi-Quelltext
1:
str1 = str2					


Hat ja auch niemand behauptet... :gruebel: