![]() |
Hash mit DEC: wie und welchen
Moin,
also ich versuche jetzt schon seit einiger Zeit mit dem DEC einen Hash von einem string zu erstellen. Ich habe mich erstmal für MD5 entschieden. Das problem ist jetzt, dass ich bei THash_MD5.create() immer folgende meldung bekomme: [Error] test.pas(82): E2035 Not enough actual parameters ist ja eigentlich auch klar weil THash_MD5.create() den parameter TProtection erwartet ("sagt" mir zumindest delphi). Es ist nur so, dass ich keine ahnung habe was das für ein parameter sein soll. würde mich sehr über hilfe freuen, :-D david Ps: würdet ihr mir überhaupt MD5 empfehlen oder ist eine der anderen hash functionen besser? |
Re: Hash mit DEC: wie und welchen
Nach einigen gesuche in Hagens beispielen habe ich es jetzt halbwegs selbst hinbekommen, allerdings werden jetzt dauernd
exceptions gemeldet und der hash sieht auch immer gleich aus. vielleicht könnt ihr mir ja sagen was ich alles falsch gemacht habe. hier mal der Code:
Delphi-Quellcode:
könnte ja auch sein, dass es an meiner XOR methode liegt.
procedure TForm1.codierenClick(Sender: TObject);
var PHash: THash_MD5; s: string; i: Integer; j: Integer; n: Integer; Hpass: string; Format: Integer; begin Format :=fmtHEXL; PHash := THash_MD5.create(nil); PHash.Init; Hpass := PHash.CodeString(pass, paEncode, Format); Inhalt.Text := eingabe; if length(pass) > 10 then begin j := 1; s := Inhalt.Text; for i := 0 to length(s) do begin j := i mod length(Hpass); n := Ord(Hpass[j]); n := n mod 31; s[i] := char(n Xor Ord(s[i])); end; Inhalt.Text := s; eingabe := s; PHash.Free; end else Inhalt.Text := 'Sie müssen ein Passwort mit mehr als 10 Zeichen eingeben'; PHash.Free; end; wäre über jede hilfe dankbar, david Ps: ich weiß, dass XOR so wie ich es hier benutze sehr unsicher ist, ist bis jetzt jedoch gewollt david |
Re: Hash mit DEC: wie und welchen
|
Re: Hash mit DEC: wie und welchen
ich würde schon gerne das DEC verwenden, weil ich vielleicht auch noch andere verschlüsselungsfunktionen nutzten möchte, oder
zb den zufallsgenerator. und das der string aus dem der hashwert erzeugt wird leer ist glaube ich nicht, weil die hashwerte schon unterschiedlich sind nur aber nur wenn ich das programm neustarte. im moment wäre es mir auch wichtiger wenn mir jemand sagen könnte warum mein code dauernd acces violations ausgibt. grüße, david |
Re: Hash mit DEC: wie und welchen
Hai Davidb,
ich versuche mal deinen Code zu "beurteilen". [quote="Davidb"]...
Delphi-Quellcode:
procedure TForm1.codierenClick(Sender: TObject);
var PHash: THash_MD5; s: string; i: Integer; j: Integer; n: Integer; Hpass: string; Format: Integer; begin Format :=fmtHEXL; // Was möchtest du mit "Format" machen? Wenn musst Du es deiner Instanz von THash zuweisen PHash := THash_MD5.create(nil); // So, hier erzeugst Du keine Instanz von THash. PHash.Init; // Init ist okay. Hpass := PHash.CodeString(pass, paEncode, Format); //Und jetzt? Du versuchst deiner Instanz einen Hashstring zu zuweisen. Inhalt.Text := eingabe; // Wo kommt den Inhalt her? if length(pass) > 10 then begin /pass ist hier auch nicht vorhanden . . end; Zitat:
|
Re: Hash mit DEC: wie und welchen
Schau mal in Hash.pas rein
Delphi-Quellcode:
Wie du siehst eine Klassen Methode. Ich weis ein sehr unübliches Design aber ein kompaktes und einfaches. Denn so ist es richtig
class function CalcString(const Data: String; Protection: TProtection; Format: Integer): String;
Delphi-Quellcode:
fertig und Gruß Hagen
Result := THash_MD5.CalcString(Value, nil, fmtHEX);
|
Re: Hash mit DEC: wie und welchen
danke hagen das wars, jetzt funktioniert es alles wunderbar.
grüße, david |
Re: Hash mit DEC: wie und welchen
hmm...hat sich hier etwas geändert?
Mein Delphi 2007 kennt kein fmtHex, außerdem sieht die deklaration nun so aus:
Delphi-Quellcode:
class function CalcFile(const FileName: String; Format: TDECFormatClass = nil; const Progress: IDECProgress = nil): Binary;
|
Re: Hash mit DEC: wie und welchen
Hi,
imho heißt es jetzt sowas wie TFormat_Hex. |
Re: Hash mit DEC: wie und welchen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz