Qual é a porcentagem de ter dois arquivos com o mesmo tamanho de byte dando o mesmo hash md5? [fechadas]

1

Estou desenvolvendo um aplicativo que armazenará muitos arquivos e, no caso de imagens, ele os redimensionará e salvará as diferentes miniaturas de que precisamos. Assim, quando um usuário fizer o upload de uma imagem, economizará mais 8 arquivos ( isso é necessário).

Para evitar arquivos duplicados e economizar espaço em meu servidor de hospedagem estática, meu aplicativo está salvando o nome do arquivo como "MD5.BYTE_SIZE" (ex: 054d995efa7e9c91569d205d24a2b486.188154)

Eu já usei esse esquema de arquivos em outros clientes sem problemas, mas preciso saber, especificamente para este projeto, se existe a possibilidade de o usuário enviar um arquivo com o mesmo MD5 e o mesmo tamanho de tamanho.

Se sim, qual é a melhor maneira de salvar meus nomes de arquivos? Com dois hashes diferentes (como o MD5.SHA-256.BYTE_SIZE)?

    
por CuSS 25.02.2013 / 04:53

2 respostas

4

Para fins práticos, zero, a menos que o usuário tente criar dois arquivos com o mesmo hash, o que é possível com o MD5.

Se você usar SHA-256, "zero" (para fins práticos), mesmo que o usuário tente criar dois arquivos com o mesmo tamanho.

A probabilidade exata é algo em torno de 1/2 ^ 128 para dois arquivos diferentes para gerar o mesmo hash. Devido ao paradoxo do aniversário, você precisaria de cerca de 2 ^ 64 arquivos até que haja 50% de chance de que dois tenham o mesmo hash. Não se preocupe com isso na prática. Para SHA256, os números são 1/2 ^ 256 e 2 ^ 128, respectivamente. Esses números também são conhecidos como "não vai acontecer".

    
por 25.02.2013 / 05:01
1

É teoricamente possível, mas, na realidade, a chance de dois arquivos diferentes terem a mesma soma de verificação MD5 é muito pequena.

Tão pequeno, em outras palavras, que você pode essencialmente tratar este evento como impossível no que diz respeito ao seu programa.

    
por 25.02.2013 / 04:58

Tags