Como os hashes podem ser usados para rastrear eficientemente as alterações de versão nos documentos?

2

Ouvi dizer que o software de código aberto usa isso. Eles são computados em um arquivo inteiro? Como se você mudasse uma carta de Moby Dick, o hash seria diferente?

Estou curioso para acompanhar as alterações em alguns arquivos com caracteres entre 1k e 1M.

Existe aqui um ballpark em termos práticos para quanto tempo leva para calcular um hash para o arquivo char 1k e 1M, respectivamente? Devo me preocupar com esse problema?

    
por user391339 17.09.2014 / 07:19

1 resposta

2

Dê uma olhada nisso: link

O MD5 foi o primeiro hash amplamente popular computado em todo o arquivo. Tem alguns problemas graves de segurança, e é por isso que não está mais em uso. Ao ler o MD5 e como ele foi usado, você encontrará as respostas para a maioria, se não para todas as suas perguntas de acompanhamento.

Mas, em termos simplificados, se você tiver qualquer conteúdo a e aplicar uma boa função hash, obterá um valor de hash binário x . Faça qualquer alteração no conteúdo a , independentemente de ser grande ou pequeno, para gerar conteúdo a '. O valor de hash do conteúdo a ' agora é um novo valor de hash x' , com cada bit de x ' tendo 50% de chance de ser diferente do bit correspondente em x .

Claro que isso significa que se você usar um hash de 32 bits, depois de fazer qualquer alteração em a , terá uma probabilidade 2 ^ -32 (0,000000023283%) para obter o mesmo valor de hash. É por isso que os hashes geralmente são maiores que 32 bits.

    
por 17.09.2014 / 07:25

Tags