Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei Md5 (https://www.delphipraxis.net/114648-textdatei-md5.html)

capo 28. Mai 2008 23:11


Textdatei Md5
 
Hallo...
ich habe in einer Textdatei untereinander Passwörter stehen:

1123
2234
4445
5567
usw.

Ich möchte alle Passwöter mit Md5 umwandeln und in einer neuen Datei speichern.
Ich habe es so versucht, leider werden die Passwörter nicht richtig umgewandelt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 1 to memo1.lines.count do begin
    Memo2.lines.Add(md5(Memo1.lines[i]))
  end;
end;

function md5(const Input: string): string;
var
  hCryptProvider: HCRYPTPROV;
  hHash: HCRYPTHASH;
  bHash: array[0..$7F] of Byte;
  dwHashLen: DWORD;
  pbContent: PByte;
  i: Integer;
begin
  dwHashLen := 16;
  pbContent := Pointer(PChar(Input));
  Result := '';
  if CryptAcquireContext(@hCryptProvider, nil, nil, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT or CRYPT_MACHINE_KEYSET) then
  begin
    if CryptCreateHash(hCryptProvider, CALG_MD5, 0, 0, @hHash) then
    begin
      if CryptHashData(hHash, pbContent, Length(Input), 0) then
      begin
        if CryptGetHashParam(hHash, HP_HASHVAL, @bHash[0], @dwHashLen, 0) then
        begin
          for i := 0 to dwHashLen - 1 do
          begin
            Result := Result + Format('%.2x', [bHash[i]]);
          end;
        end;
      end;
      CryptDestroyHash(hHash);
    end;
    CryptReleaseContext(hCryptProvider, 0);
  end;
  Result := AnsiLowerCase(Result);
end;
Grüße
Vito

Dax 28. Mai 2008 23:13

Re: Textdatei Md5
 
Was bedeutet denn "nicht richtig umgewandelt"?

capo 28. Mai 2008 23:14

Re: Textdatei Md5
 
Hi...
also:
aus 2850 wird e58aea67b01fa747687f038dfde066f6
müßte aber e833e042f509c996b1b25324d56659fb sein
Mit "Umwandeln" meine ich einen Hash erzeugen.

omata 28. Mai 2008 23:41

Re: Textdatei Md5
 
Hast du mal diese Unit versucht?

capo 28. Mai 2008 23:46

Re: Textdatei Md5
 
Hallo...ja habe ich gerade im Moment getestet, es kommt leider auch ein anderes Ergebnis dabei raus.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 1 to memo1.lines.count do begin
    Memo2.lines.Add(LowerCase(gethashstr(Memo1.lines[i])))
  end;
end;

omata 28. Mai 2008 23:48

Re: Textdatei Md5
 
Also wenn ich das ausführe...
Delphi-Quellcode:
ShowMessage(MD5Print(MD5String('2850')));
kommt e833e042f509c996b1b25324d56659fb heraus.

Keine Ahnung was du da machst.

capo 28. Mai 2008 23:52

Re: Textdatei Md5
 
Hat es evtl was mit dem Memo zu tun?
ich bekomme e58aea67b01fa747687f038dfde066f6 raus?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 1 to memo1.lines.count do begin
    Memo2.lines.Add(MD5Print(MD5String(Memo1.lines[i])))
  end;
end;

omata 28. Mai 2008 23:57

Re: Textdatei Md5
 
Ja hat es.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 1 to memo1.lines.count do begin
    Memo2.lines.Add(MD5Print(MD5String(Memo1.lines[i-1])))
  end;
end;
Die Memozeilen starten beim Index 0!

capo 29. Mai 2008 00:00

Re: Textdatei Md5
 
Danke...!!!
das ist es gewesen.
Du hast mir sehr geholfen.
Gruss Vito


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:29 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