uses
IdHash, IdHashSHA, IdGlobal, SysUtils;
function CalculateFileHash(const FileName: string): string;
var
FileStream: TFileStream;
SHA256Hash: TIdHashSHA256;
HashBytes: TBytes;
begin
FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
SHA256Hash := TIdHashSHA256.Create;
try
HashBytes := SHA256Hash.HashValue(FileStream);
Result := LowerCase(BytesToHex(HashBytes));
finally
SHA256Hash.Free;
end;
finally
FileStream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FileName: string;
HashValue: string;
begin
FileName := 'ruta_del_archivo.xml';
HashValue := CalculateFileHash(FileName);
ShowMessage('Hash SHA256 del archivo XML: ' + HashValue);
end;