2009-12-13 4 views

Répondre

40

vérificateur SHA1:

public boolean isValidSHA1(String s) { 
    return s.matches("[a-fA-F0-9]{40}"); 
} 

vérificateur MD5:

public boolean isValidMD5(String s) { 
    return s.matches("[a-fA-F0-9]{32}"); 
} 
+1

Est-il étrange et merveilleux que dfa devrait fournir quelques DFA? –

+1

non, ce n'est pas :-) – dfa

+0

La regexp dans la réponse valide les chaînes avec une longueur de chaîne supérieure à 40 caractères, cela devrait le corriger: '^ [a-fA-F0-9] {40} $' – michaeltintiuc

10

Toute séquence de 160 bits est un hachage SHA1 possible. Toute séquence de 128 bits est un hachage MD5 possible. Si vous regardez les représentations de chaînes hexadécimales, alors un sha1 ressemblera à 40 chiffres hexadécimaux, et un md5 ressemblera à 32 chiffres hexadécimaux.

+3

Vérifiez donc un nombre hexadécimal de 40 chiffres et 32 ​​chiffres respectivement – cobbal

+0

Ha; vous avez ajouté votre commentaire pendant que j'étais en train d'éditer. +1 –

+0

Cette réponse est meilleure car elle explique pourquoi. –

0

vérificateur MD5:

public boolean isValidMD5(String s) { 
return s.matches("[a-fA-F0-9]{32}");} 

Et enlever "-" de la valeur de chaîne.

Questions connexes