AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MD5File mit System.Hash?

Ein Thema von PeterPanino · begonnen am 21. Sep 2015 · letzter Beitrag vom 21. Sep 2015
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

MD5File mit System.Hash?

  Alt 21. Sep 2015, 12:34
Hallo!

What's New in Delphi and C++Builder XE8:

Zitat:
The RTL has a new unit, System.Hash. This unit includes classes and methods that allow you to use the following hash functions in your applications
Kann man mit dieser Unit indirekt den MD5-Hash einer Datei berechnen? Der THashMD5 Record publiziert ja selbst explizit keine MD5File-Methode.

Wenn nicht: Was ist die derzeit optimale (und schnellste) Methode, um mit Delphi einen MD5File Hash zu berechnen?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.158 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: MD5File mit System.Hash?

  Alt 21. Sep 2015, 12:42
Noch nie damit gearbeitet (bin noch auf XE7), aber ich dachte die "Update"-Methode wäre dafür?

Delphi-Quellcode:
procedure justHashThings();
const
  filePath = 'x:\teil 1.txt';
var
  hash: System.Hash.THashMD5;
  fileBytes: TBytes;
begin
  fileBytes := TFile.ReadAllBytes(filePath);

  hash.Reset();
  hash.Update(fileBytes);

  WriteLn('The hash is ', hash.HashAsString() );
end;
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: MD5File mit System.Hash?

  Alt 21. Sep 2015, 13:21
VIELEN Dank für den Hinweis!

hab gleich eine schöne Funktion (für Copy&Paste) daraus gemacht:
Delphi-Quellcode:
function SystemHashFileMD5(const AFilePath: string; const AUpper: Boolean = True): string;
// VORHER prüfen, ob Datei existiert!
var
  hash: System.Hash.THashMD5;
  fileBytes: TBytes;
begin
  Result := '';

  try
    fileBytes := TFile.ReadAllBytes(AFilePath);
  except
    Result := 'FileError';
    EXIT;
  end;

  hash.Reset();
  hash.Update(fileBytes);

  Result := hash.HashAsString;

  if AUpper then
    Result := UpperCase(Result);
end;
Verbesserungsvorschläge?
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#4

AW: MD5File mit System.Hash?

  Alt 21. Sep 2015, 17:12
Spring4D bietet eine Möglichkeit Hashes (komfortabel) generieren zu lassen: Klick mich

Delphi-Quellcode:
procedure Sample;
var
  LMD5Hasher: IMD5;
  LFileMD5Hash: String;
begin
  LMD5Hasher:= CreateMD5;
  LFileMD5Hash := LMD5Hasher.ComputeHashOfFile('Dateipfad').ToString;
end;

Geändert von alda (21. Sep 2015 um 17:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 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