Dans le développement de divers systèmes d'applications, les informations utilisateur sont souvent nécessaires et les mots de passe des utilisateurs sont stockés à de nombreux endroits. Il est évidemment dangereux de stocker les mots de passe utilisateur directement sur le serveur. Cet article présente brièvement l'algorithme de cryptage MD5 couramment utilisé dans le travail, dans l'espoir d'attirer l'attention.
(I) Résumé des nouvelles Introduction
Un digest de message est l'empreinte digitale numérique d'un bloc de données. Autrement dit, un bloc de données de toute longueur est calculé pour produire une empreinte digitale unique (pour SHA1, il s'agit de produire un tableau binaire de 20 octets). Message Digest est une technique utilisée en combinaison avec le code d'authentification des messages pour garantir l'intégrité du message. L'algorithme de fonction de hachage à sens unique est principalement utilisé, qui peut être utilisé pour vérifier l'intégrité des messages et les enregistrer directement dans le texte via des mots de passe de hachage. Actuellement, les algorithmes largement utilisés incluent MD4, MD5 et SHA-1.
Un message de message a deux propriétés de base:
Deux messages différents sont difficiles à générer le même digest
Il est difficile de générer un message pour un digest spécifié, et le digest spécifié peut être déduit du message.
Représentants: SHA1 de l'Institut national des normes et de la technologie et MD5 par Ronald Rivest du MIT
(Ii) crypter la chaîne
/ ** Utilisez MD5 pour le cryptage * @param str string à crypter * @return corrige cryptée * @throws noSuchalgorithMexception il n'y a pas de tel algorithme pour générer un message de message * @throws non supportedEncodingExection * / public String EncoderByMD5 (String Strows `` NosuchalgorithMexception, uncoderported ° La méthode de calcul MessagediGest MD5 = MessagediGest.getInstance ("MD5"); Base64Encoder Base64en = new Base64Encoder (); // chaîne de chaîne cryptée newsstr = base64en.encode (md5.digest (str.getBytes ("utf-8"))); Retour Newsstr; } Appeler la fonction:
String str = "0123456789"
System.out.println (EncoderByMD5 (STR));
Sortie: eb5ejf1ptwaxm4bijspyxw ==
(Iii) Vérifiez si le mot de passe est correct
Étant donné que MD5 est basé sur le principe de Digest des messages, la fonction de base de Message Digest est qu'il est difficile de calculer les messages de messages basés sur le digest. Par conséquent, pour vérifier si le mot de passe est correct, il est nécessaire de recalculer le mot de passe d'entrée (message du message) et de le comparer avec le digest stocké dans la base de données (c'est-à-dire que le digest stocké dans la base de données est en fait le mot de passe utilisateur). Si les deux digests sont les mêmes, cela signifie que le mot de passe est correct et différent, cela signifie que le mot de passe est mauvais.
/**Judge whether the user's password is correct* @param newpasswd Password entered by the user* @param oldpasswd Password stored in the database - - summary of the user's password* @return * @throws NoSuchAlgorithmException * @throws UnsupportedEncodingException */ public boolean checkpassword(String newpasswd,String oldpasswd) throws NosuchalgorithMException, UnsupportDenCcodingException {if (EncoderByMd5 (newpasswd) .equals (oldpasswd)) renvoie true; else return false; }PS: Concernant la technologie de chiffrement, ce site fournit également les outils de chiffrement suivants pour votre référence:
MD5 Outil de chiffrement en ligne: http://tools.vevb.com/password/createmd5password
Outil de cryptage / décryptage d'échappement: http://tools.vevb.com/password/escapepwd
Outil de chiffrement SHA1 en ligne: http://tools.vevb.com/password/sha1encode
Lien court (URL courte) Outil de génération en ligne: http://tools.vevb.com/password/dwzcreate
Lien court (URL courte) Outil de restauration en ligne: http://tools.vevb.com/password/unshorturl
Générateur de mots de passe à haute résistance: http://tools.vevb.com/password/createstrongpassword
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.