Hola necesito para generar un SHA sobre un archivo de Gig 5Delphi: ¿Cómo calcular el hash SHA de un archivo de gran tamaño
¿Conoce una biblioteca Delphi no basado en cadena que puede hacer esto?
Hola necesito para generar un SHA sobre un archivo de Gig 5Delphi: ¿Cómo calcular el hash SHA de un archivo de gran tamaño
¿Conoce una biblioteca Delphi no basado en cadena que puede hacer esto?
Debe usar DCPcrypt v2 y leer su archivo en búfer y alimentar el hasher SHA con el búfer hasta que haya leído el archivo completo de 5GB.
Si quiere saber cómo leer un archivo grande en búfer, vea mi respuesta about a file copy using custom buffering.
por lo que en el concepto (sin código de Delphi de verdad!):
function GetShaHash(const AFilename: String)
begin
sha := TSHAHasher.Create;
SetLength(Result, sha.Size);
file := OpenFile(AFilename, GENERIC_READ);
while not eof file do
begin
BytesRead := ReadFile(file, buffer[0], 0, 1024 * 1024);
sha.Update(buffer[0], BytesRead);
end;
sha.Final(Result[0]);
CloseFile(file);
end;
Hay una interfaz Delphi para OpenSSL, ¿verdad?
Eso debería proporcionarle mejores actuaciones.
recomendaría de Wolfgang Ehrhardt CRC/Hash.
http://home.netsurf.de/wolfgang.ehrhardt/
Es rápido y "pueden ser compilados con más actual Pascal (TP 5/5,5/6, BP 7, VP 2.1, FPC 1,0/2,0/2,2) y las versiones de Delphi (probado con V1 hasta V7/9/10) ".
Lo he usado con D11/D12 también.
sí, también es una buena, muy buenas optimizaciones de asm :) –
Si mal no recuerdo, Indy viene con varios métodos de hash basados en la transmisión.
No incluí el código real de Delphi porque no tengo un compilador Delphi instalado en este momento. –