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:
die fehlermeldung kommt beim md5final... ich kann mir leider nicht erklären warum...
function TMain_Form.fnHashTxt(sValue : String) : String;
var Context : TMD5_CTX; begin MD5Init(Context); MD5Update(Context, pChar(sValue), Length(sValue)); MD5Final(Context, Result); end; kann mir vielleicht jemand von euch helfen???? |
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. |
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 |
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:
so kann ich auch mein programm compelieren...
function TMain_Form.fnHashTxt(sValue : String) : TMD5Digest;
var Context : TMD5_CTX; begin MD5Init(Context); MD5Update(Context, pChar(sValue), Length(sValue)); MD5Final(Context, Result); end; 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... |
Re: Einfache PW Verschlüsselung mit MD5
Delphi-Quellcode:
Damit kannst du dir den Hashwert anzeigen lassen. :)
function MD5Print(D: MD5Digest): string;
|
Re: Einfache PW Verschlüsselung mit MD5
Delphi-Quellcode:
Diese Funktion ist in der md5.pas enthalten und wandelt den MD5-Hash in einen String um. ;)
ShowMessage(MD5_Hash2String(fnHashTxt('TestString')));
MfG freak |
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 |
Re: Einfache PW Verschlüsselung mit MD5
Delphi-Quellcode:
So würde es mit dem DEC gehen -> http://www.michael-puff.de/Developer...agen_Reddmann/ Datei DEC5_1c.zip
ResultString := THash_MD5.CalcBinary('Dein Passwort', TFormat_MIME64);
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 |
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! |
Re: Einfache PW Verschlüsselung mit MD5
Zitat:
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. |
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