Qual è la lunghezza massima della stringa che può avere l'hash md5? Oppure: se non ha limiti e in caso affermativo quale sarà la lunghezza massima del valore di output md5?
Qual è la lunghezza massima della stringa che può avere l'hash md5? Oppure: se non ha limiti e in caso affermativo quale sarà la lunghezza massima del valore di output md5?
Risposte:
MD5 elabora un messaggio di lunghezza arbitraria in un output a lunghezza fissa di 128 bit, generalmente rappresentato come una sequenza di 32 cifre esadecimali.
128 bits
= 16 bytes
=32 hex digits
Aggiungi lunghezza
Una rappresentazione a 64 bit di b (la lunghezza del messaggio prima dell'aggiunta dei bit di riempimento) viene aggiunta al risultato del passaggio precedente. Nel caso improbabile che b sia maggiore di 2 ^ 64, vengono utilizzati solo i 64 bit di ordine inferiore di b.
Vedi di più qui .
MD5("how many characters exactly?");
Puoi avere qualsiasi lunghezza, ma ovviamente ci può essere un problema di memoria sul computer se l'input String è troppo lungo. L'output è sempre di 32 caratteri.
block
byte dell'ingresso disponibili alla volta.
L'algoritmo è stato progettato per supportare una lunghezza di input arbitraria. Cioè puoi calcolare hash di file di grandi dimensioni come ISO di un DVD ...
Se esiste una limitazione per l'input, potrebbe provenire dall'ambiente in cui viene utilizzata la funzione hash. Supponiamo che tu voglia calcolare un file e che l'ambiente abbia un limite MAX_FILE.
Ma la stringa di output sarà sempre la stessa: 32 caratteri esadecimali (128 bit)!
Un hash MD5 a 128 bit è rappresentato come una sequenza di 32 cifre esadecimali.
È possibile che si desideri utilizzare SHA-1 anziché MD5 , poiché MD5 è considerato non funzionante.
Puoi leggere di più sulle vulnerabilità di MD5 in questo articolo di Wikipedia .
Non c'è limite all'input di md5 che conosco. Alcune implementazioni richiedono che l'intero input sia caricato in memoria prima di passarlo nella funzione md5 (ovvero, l'implementazione agisce su un blocco di memoria, non su un flusso), ma questo non è un limite dell'algoritmo stesso. L'output è sempre di 128 bit. Nota che md5 non è un algoritmo di crittografia, ma un hash crittografico. Ciò significa che è possibile utilizzarlo per verificare l'integrità di un blocco di dati, ma non è possibile invertire l'hash. Nota anche che md5 è considerato rotto, quindi non dovresti usarlo per nulla legato alla sicurezza (va comunque bene verificare l'integrità dei file scaricati e simili).