Identificador unico de um arquivo, md5, hash, crc32

Delphi

16/06/2007

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.


Vitor Rubio

Vitor Rubio

Curtidas 0

Respostas

Massuda

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.


GOSTEI 0
Vitor Rubio

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!


GOSTEI 0
Massuda

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...
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 dados



GOSTEI 0
POSTAR