Oldal: 1 / 1

MD5 kódolás, hogyan?

Elküldve: 2016.09.12. 18:02
Szerző: berkesi33
Sziasztok,
szeretnék md5-ös kódot generálni egy karaktersorozatból, illetve ha lehetséges, akkor egy szöveg file-ból is ellenőrzés és titkosítás céljából.
Delphi 5 Professional.
Előre is köszönöm a megoldásokat.

Re: MD5 kódolás, hogyan?

Elküldve: 2016.09.12. 18:55
Szerző: gaborg
String MD5:

Kód: Egész kijelölése

uses IdHashMessageDigest, idhash

function MD5(s: string) : string;
var
   idmd5 : TIdHashMessageDigest5;
begin
   idmd5 := TIdHashMessageDigest5.Create;
   try
      result := LowerCase(idmd5.AsHex(idmd5.HashValue(s)));
   finally
      idmd5.Free;
   end;
end;


File MD5:

Kód: Egész kijelölése

uses IdHashMessageDigest, idhash

function fileMD5(const fileName : string) : string;
var
   idmd5 : TIdHashMessageDigest5;
   fs : TFileStream;
begin
   idmd5 := TIdHashMessageDigest5.Create;
   fs := TFileStream.Create(fileName, fmOpenRead or fmShareDenyWrite);
   try
      result := idmd5.AsHex(idmd5.HashValue(fs));
   finally
      idmd5.Free;
      fs.Free;
   end;
end;

Re: MD5 kódolás, hogyan?

Elküldve: 2016.09.12. 19:11
Szerző: berkesi33
Köszönöm!
Lenne egy kérdésem az md5 kóddal kapcsolatban. Hogyan lehet visszakonvertálni az eredetire? Lehetséges?

Re: MD5 kódolás, hogyan?

Elküldve: 2016.09.12. 19:38
Szerző: gaborg
Röviden: nem lehet.

Az md5 által generált fix hosszúságú (32 byte) hash nem visszaalakítható. Több karaktersorozatnak is lehet ugyanaz a hash értéke.
Azt lehet ellenőrizni, hogy két string-nek ugyanaz-e az md5 kódja.
Pl. Jelszó tárolás esetén nem a jelszó kerül az adatbázisba, hanem annak az md5 kódja.
Jelszó ellenőrzéskor azt lehet összehasonlítani, hogy az adatbázisban tárolt md5 megegyezik-e a megadott string md5-jével.