Qual é o comprimento máximo da string que pode ter o hash MD5? Ou: se não houver limite e, em caso afirmativo, qual será o comprimento máximo do valor de saída do md5?
Qual é o comprimento máximo da string que pode ter o hash MD5? Ou: se não houver limite e, em caso afirmativo, qual será o comprimento máximo do valor de saída do md5?
Respostas:
O MD5 processa uma mensagem de tamanho arbitrário em uma saída de comprimento fixo de 128 bits, normalmente representada como uma sequência de 32 dígitos hexadecimais.
128 bits
= 16 bytes
=32 hex digits
Anexar Comprimento
Uma representação de 64 bits de b (o comprimento da mensagem antes da adição dos bits de preenchimento) é anexada ao resultado da etapa anterior. No caso improvável de que b seja maior que 2 ^ 64, apenas os 64 bits de ordem inferior de b são usados.
Veja mais aqui .
MD5("how many characters exactly?");
Você pode ter qualquer tamanho, mas é claro que pode haver um problema de memória no computador se a entrada String for muito longa. A saída é sempre 32 caracteres.
block
bytes da entrada disponíveis por vez.
O algoritmo foi projetado para suportar comprimento de entrada arbitrário. Ou seja, você pode calcular hashes de arquivos grandes, como ISO de um DVD ...
Se houver uma limitação para a entrada, ela poderá vir do ambiente em que a função hash é usada. Digamos que você queira calcular um arquivo e o ambiente tenha um limite MAX_FILE.
Mas a string de saída será sempre a mesma: 32 caracteres hexadecimais (128 bits)!
Um hash MD5 de 128 bits é representado como uma sequência de 32 dígitos hexadecimais.
Você pode usar o SHA-1 em vez do MD5 , pois o MD5 é considerado quebrado.
Você pode ler mais sobre as vulnerabilidades do MD5 neste artigo da Wikipedia .
Não há limite para a entrada do MD5 que eu conheço. Algumas implementações exigem que toda a entrada seja carregada na memória antes de passá-la para a função md5 (ou seja, a implementação atua em um bloco de memória, não em um fluxo), mas isso não é uma limitação do próprio algoritmo. A saída é sempre 128 bits. Observe que o md5 não é um algoritmo de criptografia, mas um hash criptográfico. Isso significa que você pode usá-lo para verificar a integridade de um pedaço de dados, mas não pode reverter o hash. Observe também que o md5 é considerado quebrado, portanto você não deve usá-lo para nada relacionado à segurança (ainda é bom verificar a integridade dos arquivos baixados e outros).