Quelle est la longueur maximale de la chaîne qui peut avoir le hachage md5? Ou: S'il n'y a pas de limite, et si oui, quelle sera la longueur maximale de la valeur de sortie md5?
Quelle est la longueur maximale de la chaîne qui peut avoir le hachage md5? Ou: S'il n'y a pas de limite, et si oui, quelle sera la longueur maximale de la valeur de sortie md5?
Réponses:
MD5 traite un message de longueur arbitraire en une sortie de longueur fixe de 128 bits, généralement représentée comme une séquence de 32 chiffres hexadécimaux.
128 bits
= 16 bytes
=32 hex digits
Ajouter la longueur
Une représentation 64 bits de b (la longueur du message avant l'ajout des bits de remplissage) est ajoutée au résultat de l'étape précédente. Dans le cas peu probable où b est supérieur à 2 ^ 64, seuls les 64 bits de poids faible de b sont utilisés.
En savoir plus ici .
MD5("how many characters exactly?");
Vous pouvez avoir n'importe quelle longueur, mais bien sûr, il peut y avoir un problème de mémoire sur l'ordinateur si l'entrée String est trop longue. La sortie est toujours de 32 caractères.
block
octets de l'entrée disponibles à la fois.
L'algorithme a été conçu pour prendre en charge une longueur d'entrée arbitraire. Ie vous pouvez calculer des hachages de gros fichiers comme l'ISO d'un DVD ...
S'il y a une limitation pour l'entrée, cela peut provenir de l'environnement dans lequel la fonction de hachage est utilisée. Disons que vous voulez calculer un fichier et que l'environnement a une limite MAX_FILE.
Mais la chaîne de sortie sera toujours la même: 32 caractères hexadécimaux (128 bits)!
Un hachage MD5 de 128 bits est représenté par une séquence de 32 chiffres hexadécimaux.
Vous voudrez peut-être utiliser SHA-1 au lieu de MD5 , car MD5 est considéré comme cassé.
Vous pouvez en savoir plus sur les vulnérabilités MD5 dans cet article de Wikipedia .
Il n'y a pas de limite à l'entrée de md5 que je connaisse. Certaines implémentations nécessitent que l'entrée entière soit chargée en mémoire avant de la passer dans la fonction md5 (c'est-à-dire que l'implémentation agit sur un bloc de mémoire, pas sur un flux), mais ce n'est pas une limitation de l'algorithme lui-même. La sortie est toujours de 128 bits. Notez que md5 n'est pas un algorithme de cryptage, mais un hachage cryptographique. Cela signifie que vous pouvez l'utiliser pour vérifier l'intégrité d'un morceau de données, mais vous ne pouvez pas inverser le hachage. Notez également que md5 est considéré comme cassé, vous ne devez donc pas l'utiliser pour quoi que ce soit lié à la sécurité (il est toujours bon de vérifier l'intégrité des fichiers téléchargés et autres).