181 votes

Longueur maximale pour les entrées/sorties MD5

Quelle est la longueur maximale de la chaîne qui peut être hachée par md5 ? Ou : S'il n'y a pas de limite, et si oui, quelle sera la longueur maximale de la valeur de sortie du md5 ?

2 votes

Suivez le wiki : fr.wikipedia.org/wiki/MD5

262voto

Daniel Vassallo Points 142049

MD5 traite un message de longueur arbitraire en une sortie de longueur fixe de 128 bits, généralement représentée par une séquence de 32 chiffres hexadécimaux.

115 votes

Note à soi-même : Longueur du hachage MD5 = 128 bits = 16 bytes = 32 hex digits

2 votes

[A normal Edit] 32 chiffres hexadécimaux et la chaîne ne contient que des mots de 'a-z' et des chiffres de '0-9'.

1 votes

J'ai remarqué une petite erreur dans les commentaires précédents. Le texte devrait être comme cité :) "32 chiffres hexadécimaux et la chaîne de caractères contient seulement lettres de "a-z" et les chiffres de "0-9"".

45voto

Mark Byers Points 318575

Ajouter la longueur

Une représentation de 64 bits de b (la longueur du message avant l'ajout des bits de remplissage) est ajoutée au message. bits de remplissage) est ajoutée au résultat de l'étape précédente. précédente. Dans le cas improbable où b est supérieur à 2^64, seuls les 64 bits de poids faible de b sont utilisés. les 64 bits de poids faible de b sont utilisés.

  • Le hachage est toujours de 128 bits. Si vous l'encodez sous forme de chaîne hexadécimale, vous pouvez encoder 4 bits par caractère, ce qui donne 32 caractères.
  • MD5 n'est pas un cryptage. En général, vous ne pouvez pas "décrypter" un hachage MD5 pour obtenir la chaîne originale.

Voir plus aquí .

0 votes

La longueur du message est illimitée Qu'est-ce que tu veux dire ? message ? Est-ce une entrée ? Ma question est la suivante MD5("how many characters exactly?");

0 votes

@Shafizadeh Votre entrée peut être aussi longue que possible dans votre langage de programmation actuel. En Java, cela correspondrait à (2^31)-1 caractères dans une chaîne. Et oui, le "message" est l'entrée.

1 votes

@Shafizadeh ... ou à partir d'un fichier, l'entrée peut être aussi grande que le stockage disponible.

13voto

Vidar Vestnes Points 14317

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.

4 votes

Si la chaîne saisie est trop longue, elle n'existerait pas dans le système, à moins qu'elle ne soit dans un fichier, auquel cas vous pouvez transmettre des blocs à la fonction digest au fur et à mesure de leur lecture, en d'autres termes, il suffit d'avoir block octets de l'entrée disponible à un moment donné.

7voto

Kami Points 3181

L'algorithme a été conçu pour supporter une longueur d'entrée arbitraire. C'est-à-dire que vous pouvez calculer des hachages de gros fichiers comme l'ISO d'un DVD...

S'il y a une limitation pour l'entrée, elle 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 hexagonaux (128 bits) !

5voto

enam Points 1

Vous pouvez utiliser SHA-1 au lieu de MD5 car le MD5 est considéré comme cassé.

Vous pouvez en savoir plus sur les vulnérabilités MD5 dans cet article de Wikipedia .

13 votes

Son créateur, ainsi que Bruce Schneier et Homeland Security sont d'accord pour dire qu'il est brisé... Combien de "rumeurs" supplémentaires vous faut-il pour vous convaincre qu'il est en fait cassé depuis un certain temps ? Le fait est qu'il est arbitrairement facile de trouver une entrée qui génère un hachage spécifique. Bien sûr, vous pouvez atténuer ce risque en salant vos entrées, en utilisant des sels suffisamment grands. À titre d'information, SHA-1 est considéré comme étant tout aussi cassé. Si vous conseillez aux gens de faire une mise à niveau, conseillez-leur de faire une mise à niveau vers SHA-2, s'il vous plaît.

3 votes

@kander oh j'ai besoin d'un tout petit peu. Un exemple. Étant donné un hachage, pouvez-vous apporter une chaîne de source ? Pas un lien vers un article génial, pas l'opinion de quelqu'un, mais juste une chaîne de sources ?

0 votes

@Col. Shrapnel : Produire une chaîne source, c'est bien, mais je dirais que s'il peut produire un article montrant comment la craquer pour un coût de $xxxxxxx, ce serait également suffisant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X