![]() |
Delphi-Version: 7
hagen reddman dec
hallo hagen es geht um deine compnente dec wenn ich diesen code verwende
Delphi-Quellcode:
bekomme ich einen error an follgender stelle in meinem quellcode
function md4(s:string):string ;
begin s:=THash_MD5.Create.DigestStr(nil); result:=s; end;
Delphi-Quellcode:
Zu meiner frage wie muss ich es anpssen das ich deinen code wie diesen hier benutzen kann
result := GetMD5(IntToHex(x,0));
Delphi-Quellcode:
Da es bei dir diese function nicht gibt.
result := MD5DigestToStr(MD5String(s));//erstellt einen md5hash
|
AW: hagen reddman dec
MD4 oder MD5 ... was nun?
Wieso wird der Parameter "s" nicht genutzt? Wann gibst dudas mit
Delphi-Quellcode:
erstellte Objekt wieder frei?
THash_MD5.Create
Di übergist DigestStr ein nil und wunderst dich dann, daß es eventuell knallt? |
AW: hagen reddman dec
Es soll md5 sein die function heisst nur md4(testzwecke).
Selbst wenn ich es freigebe:
Delphi-Quellcode:
Der md5 string soll ja für diese functionen sein;
t:THash_MD5;
begin t:=THash_MD5.Create; t.init; Result:=t.DigestStr(TFormat_MIME64); t.done; end;
Delphi-Quellcode:
Wie gesagt das hier geht bei dec ja nicht.
function GetUser: string; // Function to get UserName
var // Declaring our variables StrUserName: PChar; // PointerChar Size: DWord; // DWORD integer Begin // Begin Size:=250; // Set size to 250 (max UN length) GetMem(StrUserName, Size); // Allocate some memory GetUserName(StrUserName, Size); // API to get UN result := StrPas(StrUserName); // Return the UN FreeMem(StrUserName); // Free up the allocated memory end; Procedure RSADecrypt(CT : String; D : String; N : String; var PT : String); Var c,d1,n1,p : TFGInt; Begin ConvertHexStringToBase256String(CT,CT); Base256StringToFGInt(CT,c); ConvertHexStringToBase256String(D,D); Base256StringToFGInt(D,d1); ConvertHexStringToBase256String(N,N); Base256StringToFGInt(N,n1); FGIntModExp(c,d1,n1,p); // C ^ D mod N FGIntToBase256String(P,PT); ConvertBase256StringToHexString(PT,PT); FGIntDestroy(c); // Destroy FGInt (important!) FGIntDestroy(d1); // Destroy FGInt (important!) FGIntDestroy(n1); // Destroy FGInt (important!) FGIntDestroy(p); // Destroy FGInt (important!) End; end; function HexToInt(s : string) : Int64; // Convert HEX to Int64 integers begin // Begin if (s <> '') and (s[1] <> '$') then // If s != ‘’ and s[1] is not $ then result := strToInt64('$' + s ) // Convert ‘$’+s to Int64 ($ = HEX) else // Else result := strToInt64(s); // Convert s to Int64 end; end; function Part1(s: string): string; // Part 1 var // Declaring variables i, x : integer; // Counter and Holder as integers begin // Begin x := 0; // Initialize x as 0 for i := 1 to length(s) do // For 1 to 32 do begin // Begin x := x + HexToInt(s[i]); // hier knallt es wenn ich oben den code verwende end; // End result := new_md5(IntToHex(x,0)); // Get the MD5 of x end; function Part2(s: string): string; // Part 2 var // Declaring Variables i, j, x : integer; // 2 Counters and a holder as integers begin // Begin i := 1; // Initialize i as 1 j := 2; // Initialize j as 2 x := 0; // Initialize x as 0 while i <= length(s) do // If i <= 32, then execute loop begin // Begin x := x + HexToInt(s[i] + s[j]); // Pair inc(i,2); // Increment counter inc(j,2); // Increment counter end; // End result := new_md5(IntToHex(x,0)); // Get the MD5 of x oder hier end; function Part3(s: string): string; // Part 3 var // Declaring variables arr : array [1..8] of string; // Array [1..8] of strings i, x : integer; // Counter and Holder as integers begin // Begin arr[1] := s[01] + s[02] + s[03] + s[04]; // I got a little lazy here... arr[2] := s[05] + s[06] + s[07] + s[08]; // Manually splitting the MD5 into arr[3] := s[09] + s[10] + s[11] + s[12]; // Groups of 4... made possible by arr[4] := s[13] + s[14] + s[15] + s[16]; // The creators of Copy/Paste ƒº arr[5] := s[17] + s[18] + s[19] + s[20]; // Still going... arr[6] := s[21] + s[22] + s[23] + s[24]; // And going... arr[7] := s[25] + s[26] + s[27] + s[28]; // Almost... arr[8] := s[29] + s[30] + s[31] + s[32]; // Finally! x := 0; // Initialize x as 0 for i := 1 to 8 do // 1 to length of the array do loop begin // Begin x := x + HexToInt(arr[i]); // Groups of 4 end; // End result := new_md5(IntToHex(x,0)); // Get the MD5 of x end; function Part4(s: string): string; // Part 4 var // Refer to Part 3 for more info... arr : array [1..4] of string; i, x : integer; begin arr[1] := s[01] + s[02] + s[03] + s[04] + s[05] + s[06] + S[07] + s[08]; arr[2] := s[09] + s[10] + s[11] + s[12] + s[13] + s[14] + s[15] + s[16]; arr[3] := s[17] + s[18] + s[19] + s[20] + s[21] + s[22] + s[23] + s[24]; arr[4] := s[25] + s[26] + s[27] + s[28] + s[29] + s[30] + s[31] + s[32]; x := 0; for i := 1 to 4 do begin x := x + HexToInt(arr[i]); end; result := new_md5(IntToHex(x,0)); end; function Part5(s: string): string; // Part 5 var // Refer to Part 3 for more info... arr : array [1..4] of string; x : int64; i : integer; begin x := 0; arr[1] := s[01] + s[02] + s[03] + s[04] + s[05] + s[06] + s[07] + s[08] + s[09] + s[10] + s[11] + s[12] + s[13] + s[14] + s[15] + s[16]; arr[2] := s[17] + s[18] + s[19] + s[20] + s[21] + s[22] + s[23] + s[24] + s[25] + s[26] + s[27] + s[28] + s[29] + s[30] + s[31] + s[32]; for i := 1 to 2 do begin x := x + HexToInt(arr[i]); end; result := new_md5(IntToHex(x,0)); end; procedure TForm1.btn1Click(Sender: TObject); Var // Declaring variables A,b: string; // Strings ‘a’ and ‘b’ (b = serial) begin // Begin a := Part1(new_md5(GetUser)); //Part 1 a := Part2(a); // Part 2 a := Part3(a); // Part 3 a := Part4(a); // Part 4 a := Part5(a); // Part 5 { RSA Decrypt the final MD5 hash (result goes in ‘b’): } RSADecrypt(a,'3E6CBE18ABF0172741C8A583CA54402D', 'D679E4D420CF78D335DC9AD165F9D819',b); edt1.text := b; // Print out serial end; // End end; //function GetMD5(s: string): string; // Gets MD5 hash for what’s sent begin // //Begin //result := MD5DigestToStr(MD5String(s)); // Calculate MD5 hash hier wird s genutzt //end; |
AW: hagen reddman dec
Du mußt doch wohl auch angeben, von was der Hash berechnet werden soll. Diese Zeilen
Delphi-Quellcode:
liefern zB die richtigen Werte für den Ansistring 'abc':
t := THash_MD5.Create;
t.init; writeln(t.calcbinary('abc', TFormat_Hex)); writeln(t.calcbinary('abc', TFormat_MIME64));
Code:
Hex: 900150983CD24FB0D6963F7D28E17F72
Mime64: kAFQmDzST7DWlj99KOF/cg== |
AW: hagen reddman dec
Zitat:
Delphi-Quellcode:
begin
LokaleVariable := TEineKlasse.Create; try // Tue etwas mit LokaleVariable ... finally LokaleVariable.Free; end; end; |
AW: hagen reddman dec
Einen dermaßenen Kommentar-Overkill habe ich noch nie gesehen. :shock:
Delphi-Quellcode:
:wall:
Begin // Begin
i := 0; // Initialize i as 0 inc(i); // Increment i Ein gutes Programm kommt ganz ohne Kommentare aus |
AW: hagen reddman dec
Ich wollte das noch nicht ansprechen. (PS: selbst Begin kann man kommentieren? :shock: )
Aber mal im Ernst, ist dir aufgefallen, daß sich dadrin auch ein wichtiger Kommentar versteckt, welcher für uns Helfer bestimmt ist? Ganz ohne nicht, aber nur das Wichtige, welches man wirklich nicht so einfach verstehen kann. |
AW: hagen reddman dec
Deswegen wollte ich die md5 unit von dec verwenden.
Hier wird der md5 string ja generiert aber diese function geht bei mir nicht da die md5.pas einen fehler anzeigt.
Delphi-Quellcode:
Und in hex wird der md5 ja hier umgewandelt :
//function GetMD5(s: string): string;
//Begin //result := MD5DigestToStr(MD5String(s)); //stammt aus der md5.pas die ich hier gefunden habe //end;
Delphi-Quellcode:
Hier wird doch der benutzer name in hex umgewandelt:
result := new_md5(IntToHex(x,0));
Delphi-Quellcode:
Allso kann man keinen normalen md5 string generiren mit dieser unit?
Part1(new_md5(GetUser));
@gammatester teste doch einfach mal die getmd5 function und du siehst was rauskommt. Der md5 string soll ja für die anderen sachen erstellt werden nicht für 'abc' sondern einen md5 string für den MD5 Hash the UserName |
AW: hagen reddman dec
Zitat:
|
AW: hagen reddman dec
Liste der Anhänge anzeigen (Anzahl: 1)
Ok hier an diese stelle
Delphi-Quellcode:
zeigt ihr mir diesen error an [Error] md5.pas(407): Incompatible types: 'Array' and 'TByteArray'
MD5Update(Context, @Buffer, ReadBytes);
hier ist die md.pas die ich verwende. Da ich nichts an der md5.pas geändert habe verstehe ich bei diesem error nur bahnhof. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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