Pergunta

Digamos que eu tenha 'n' número de arquivos, para cada um dos quais eu tenho CRC32, MD5 e SHA1 Digests

Agora, esses 'n' número de arquivos são realmente arquivos/arquivos de arquivo grande de um único arquivo grande.

Quando esses arquivos menores são recombinados/unidos no arquivo maior, também podemos calcular o resumo deste arquivo maior.

Minha pergunta é: existe uma maneira de verificar se a combinação dos resumos desses arquivos menores é igual à digestão do arquivo grande?

Por exemplo, digamos que eu tenho um arquivo dividido em 4 partes com digestas 0xde, 0xad, 0xBE, 0XEF

Digamos, depois de ingressar, o arquivo maior tem digerir 0xc0

Existe alguma maneira de verificar se a junção (0xde, 0xad, 0xbe, 0xef) == 0xc0, onde 'junção' é a operação mágica/fórmula/algorthm que estou procurando?

Foi útil?

Solução

Não pense assim, desculpe
Tornaria bastante fácil quebrar um md5 se isso fosse possível

editar. Se você quer dizer, posso calcular o md5 da soma do md5 das partes = não.
Mas se você deseja apenas confirmar que as peças estão corretas, sempre pode calcular o MD5 de cada peça individual e, em seguida, o MD5 do conjunto desses MD5s.
Obviamente, para verificar, você precisa executar a mesma sequência, para que alguém que tenha apenas o arquivo completo teria que dividi -lo para fazer a mesma verificação.

Outras dicas

Se você não participar dos arquivos, poderá passar um a um a um para o algoritmo de hash usando o método TransformBlock. Com o chamado TransformFinalBlock que lhe dá o resultado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top