10
votes

Existe-t-il un moyen de tester si une chaîne est un hash md5?

J'essaie d'entrer un fichier texte contenant des haubans MD5 et des mots-clés (une par ligne) dans une application C #. Y a-t-il un moyen de vérifier si une chaîne est un hash md5? J'ai regardé sur MSDN et je n'ai rien trouvé dans la classe MD5.


2 commentaires

Pouvez-vous poster un échantillon du contenu du fichier? Y a-t-il un modèle aux données?


Malheureusement, non je ne peux pas. Je n'ai pas de fichier réel pour tester mon application.


6 Réponses :


9
votes

Eh bien, un hachage de MD5 est vraiment juste des données binaires - si vous avez une chaîne, il est probablement codé de manière vraisemblablement codée par ex. base64 ou hex. Vous pouvez vérifier si la chaîne est correctement codée pour la longueur droite des binaires (16 octets). C'est tout cependant - alors qu'il peut être des valeurs binaires qui ne sont jamais le résultat de la hausse des données, je doute fortement que vous puissiez reconnaître de telles valeurs. Idéalement, il ne devrait y avoir aucune valeur de ce type, bien sûr ...


0 commentaires

3
votes

Si ses 32 octets longs et 0-9 A-F sont probablement MD5, mais pas 100%


0 commentaires

5
votes

Un hachage MD5 est une valeur de 128 bits. Il est généralement représenté comme un octet [] avec une longueur de 16 ou comme une chaîne où chaque octet est représenté par deux chiffres hexadécimaux. Un hachage MD5 n'a ni structure interne ni aucune sorte de «signature» qui vous permet de détecter si une valeur de 128 bits est un hachage de MD5 ou non.


0 commentaires

21
votes

Utilisez regex comme ceci: xxx


3 commentaires

Ce 94476226E1DD479C8E1Fab7A8fdefffa ne fonctionnera pas, la regex corecle est [0-9a-fa-f] {32}


En fait, la regex devrait être ^ [0-9a-f] {32} $ (avec insensible à la casse / i drapeau) ou ^ [0-9a -fa-f] {32} $ Comme @eduardflorinescu suggéré si vous ne pouvez pas définir le drapeau insensible à une casse. Parce que [0-9a-F] {32} correspond également aux chaînes plus longues, ce qui peut arriver, mais qui ne sera pas un MD5 de quelque chose, mais juste des données codées hexagonales aléatoires.


Cela ne fonctionnera pas pour MD5 comme celui-ci "CBHC / DGTZBCG / XGE8WGBJA ==", qui est un nombre à la manière



1
votes

La première chose à faire est d'examiner le fichier pour déterminer comment les hachages MD5 sont codés, puis concevez un match basé sur cela.


0 commentaires

1
votes

Je pense que le correct est celui-ci qui comprend également les capitales parfois les hachages viennent également dans les capitales, alors pourquoi manquer cela.

[0-9a-f]{32}(?i)


0 commentaires