Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einfache PW Verschlüsselung mit MD5 (https://www.delphipraxis.net/78384-einfache-pw-verschluesselung-mit-md5.html)

Andidreas 4. Okt 2006 10:19


Einfache PW Verschlüsselung mit MD5
 
aloha...

ich versuch gerade mit der MD5 Unit von assarbad ein pw von mir einfach zu verschlüsseln...

denn qt für die verschlüsselungs routine hab ich hier im forum gefunden (war glaub von sharky)...

leider krieg ich beim kompellieren meines projektes einen fehler:
[Fehler] PW_MD5_main.pas(95): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen

die routine von sharky sieht wie folg aus:

Delphi-Quellcode:
function TMain_Form.fnHashTxt(sValue : String) : String;

var
Context : TMD5_CTX;

begin

  MD5Init(Context);
  MD5Update(Context, pChar(sValue), Length(sValue));
  MD5Final(Context, Result);

end;
die fehlermeldung kommt beim md5final... ich kann mir leider nicht erklären warum...
kann mir vielleicht jemand von euch helfen????

Nikolas 4. Okt 2006 10:27

Re: Einfache PW Verschlüsselung mit MD5
 
Es würde helfen, wenn du noch die Funktion hinschreiben würdest, die die Probleme verursacht. So wie ich die Fehlermeldung deute, erwartet die Funktion andere Parameter, als du ihr gibts, also einen Integer wo ein String stehen sollte, oder sowas.

// und mit einem Hash wird nicht verschlüsselt, da es keine Umkehrabbildung gibt.

Klaus01 4. Okt 2006 10:28

Re: Einfache PW Verschlüsselung mit MD5
 
Hallo Andreas,

mit md5 kannst Du kein Passwort verschlüsseln,
md5 erstellt "nur" einen HashWert.
Aus dem Hashwert kann das PAsswort nicht eindeutig ermittelt werden.

Der Hashwert ist eine Hilfe um festzustellen ob z.B. Passworte indentisch sind.
Sind sie indentisch sind die HashWerte gleich.

Vielleicht kannst Du noch die verwendete Unit anhängen,
so kann man schlecht sagen, was an dem Aufruf falsch ist.

Grüße
Klaus

Andidreas 4. Okt 2006 10:44

Re: Einfache PW Verschlüsselung mit MD5
 
ok sry ich hab mich bischen falsch ausgedrückt...
ich will denn hash wert ermitteln! das langt mir fürs erste!

nun noch mal zu meinem problem...

ich hatte in meiner funktion einen fehler...

so siehts richtig aus:

Delphi-Quellcode:
function TMain_Form.fnHashTxt(sValue : String) : TMD5Digest;

var
Context : TMD5_CTX;


begin

  MD5Init(Context);
  MD5Update(Context, pChar(sValue), Length(sValue));
  MD5Final(Context, Result);

end;
so kann ich auch mein programm compelieren...
leider weiß ich jetzt nicht wie ich mir denn hash wert anzeigen lassen kann...

die md5 routinen bzw. die .pas datei hab ich mir hier geholt...

vielleicht kann mir einer dabei helfen wie ich denn hash wert anzeigen lassen kann...

ste_ett 4. Okt 2006 10:54

Re: Einfache PW Verschlüsselung mit MD5
 
Delphi-Quellcode:
function MD5Print(D: MD5Digest): string;
Damit kannst du dir den Hashwert anzeigen lassen. :)

freak4fun 4. Okt 2006 10:56

Re: Einfache PW Verschlüsselung mit MD5
 
Delphi-Quellcode:
ShowMessage(MD5_Hash2String(fnHashTxt('TestString')));
Diese Funktion ist in der md5.pas enthalten und wandelt den MD5-Hash in einen String um. ;)

MfG
freak

Klaus01 4. Okt 2006 10:57

Re: Einfache PW Verschlüsselung mit MD5
 
TMD5digest = array[0..15] of Byte;

Du mußt das Array in einen String wandeln.
Dazu kannst Du die Funktion IntToHex verwenden.
Ein Byte entsprechen 2 HexZeichen.
Du bekommst dann einen String mit 32 Zeichen.

for i:=0 to 15
result:=result+IntToHex(MD5Digest[i],2);

oder du verwendest die Methode von freak4fun

Grüße
Klaus

negaH 4. Okt 2006 11:40

Re: Einfache PW Verschlüsselung mit MD5
 
Delphi-Quellcode:
ResultString := THash_MD5.CalcBinary('Dein Passwort', TFormat_MIME64);
So würde es mit dem DEC gehen -> http://www.michael-puff.de/Developer...agen_Reddmann/ Datei DEC5_1c.zip
eventuell findest du Zeit es dir mal genauer anzuschauen.
Der letzte Parameter gibt dabei ab in welchem Ausgabe Format du deinen Hashdigest haben möchtest. In diesem Falle als Inet-MIME-Base-64. Mit TFormat_HEX zb. wäre der Output ein HEX String.

Bedenke das diese Methode des enfachen hashens ohne Salt nicht sonderlich sicher sein kann. Besser ist es ein sogennate KDF -> Key Derivation Function -> Schlüssel Ableitungs Funktion zu bentzen. Im DEC gibt es dafür die Klasenmethoden .KDFx() und .KDF2() der Hash Klassen.

Gruß Hagen

Andidreas 4. Okt 2006 13:39

Re: Einfache PW Verschlüsselung mit MD5
 
@klaus01 & freak4fun

mir geht es nicht darum das ich denn md5 hash wert wieder in einen string übersetzen kann (wenn das überhaupt geht :gruebel: )

ich möchte lediglich denn md5 hash wert als string ausgeben, damit ich ihn z.b. in einer db, txt file, ini ect. speichern kann!

Klaus01 4. Okt 2006 13:43

Re: Einfache PW Verschlüsselung mit MD5
 
Zitat:

@klaus01 & freak4fun

mir geht es nicht darum das ich denn md5 hash wert wieder in einen string übersetzen kann (wenn das überhaupt geht )

ich möchte lediglich denn md5 hash wert als string ausgeben, damit ich ihn z.b. in einer db, txt file, ini ect. speichern kann!
Da der Hashwert nicht druckbare Zeichen enthält geht man
in der Regel so vor, dass man die Ordinalwerte der Zeichen in HexZeichen
wandelt und diese ausgibt. Und nichts anderes macht IntToHex
oder die Funktion MD5_Hash2String.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Seite 1 von 2  1 2      

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