Identificador unico de um arquivo, md5, hash, crc32
Gostaria de obter um identificador unico de um arquivo, assim, mesmo se eu tiver um arquivo repetido em outra pasta, ou com o nome diferente, eu posso sabber que duas cópias em lugares diferentes de um mesmo arquivo tratam-se realmente do mesmo arquivo.
Como eu faço, no delphi, para tirar um md5, hash, crc32 ou qualquer coisa to tipo ?
Não entendo muito dessas coisas.
Como eu faço, no delphi, para tirar um md5, hash, crc32 ou qualquer coisa to tipo ?
Não entendo muito dessas coisas.
Vitor Rubio
Curtidas 0
Respostas
Massuda
16/06/2007
voce pode usar md5, mas use também o tamanho do arquivo para decidir se dois arquivos são iguais.
Você encontra rotinas de cálculo de hashs e mds no pacote LockBox no sourceforge.net.
Você encontra rotinas de cálculo de hashs e mds no pacote LockBox no sourceforge.net.
GOSTEI 0
Vitor Rubio
16/06/2007
Olá, Massuda!
Uma dúvida: Eu não preciso criptografar nada, nem fazer aquele par e chaves, para tirar um md5 de um arquivo com lockbox?
MD5 e hash é a mesma coisa? Sou leigo nesses assuntos.
Valew!
Uma dúvida: Eu não preciso criptografar nada, nem fazer aquele par e chaves, para tirar um md5 de um arquivo com lockbox?
MD5 e hash é a mesma coisa? Sou leigo nesses assuntos.
Valew!
GOSTEI 0
Massuda
16/06/2007
[quote:4a0b2f25d5=´vitor^_^´]MD5 e hash é a mesma coisa?[/quote:4a0b2f25d5]Basicamente são a mesma coisa. MD (message digest) é um caso especial de hash.
:arrow: [url=http://pt.wikipedia.org/wiki/Hash]Hash na Wikipedia[/url]
[quote:4a0b2f25d5=´vitor^_^´]Eu não preciso criptografar nada, nem fazer aquele par e chaves, para tirar um md5 de um arquivo com lockbox?[/quote:4a0b2f25d5]Acho que ficaria algo assim...
:arrow: [url=http://pt.wikipedia.org/wiki/Hash]Hash na Wikipedia[/url]
[quote:4a0b2f25d5=´vitor^_^´]Eu não preciso criptografar nada, nem fazer aquele par e chaves, para tirar um md5 de um arquivo com lockbox?[/quote:4a0b2f25d5]Acho que ficaria algo assim...
uses
LbCipher,
...
var
Contexto: TMD5Context;
Digest: TMD5Digest;
...
InitMD5(Contexto);
// Buffer é um buffer com seus dados
while {...tem dados para processar...} do begin
{...carrega os dados no Buffer...}
UpdateMD5(Contexto, Buffer, SizeOf(Buffer));
...
end;
FinalizeMD5(Contexto, Digest);
// ...Digest tem o MD5 dos dadosGOSTEI 0