Préface
Dans notre développement, nous devons considérer cette fonction. Lorsque l'utilisateur oublie son mot de passe, nous devons lui envoyer dynamiquement un mot de passe aléatoire à 6 chiffres, par messagerie instantanée, SMS, WeChat, etc. En même temps, le mot de passe d'origine de la base de données est modifié à ces mots de passe aléatoires à 6 chiffres. Laissez l'utilisateur changer à nouveau le mot de passe.
Dans le même temps, le mot de passe de la base de données doit être stocké sous forme de texte chiffré, donc le cryptage MD5 est requis. Le mot de passe aléatoire à 6 chiffres généré doit être maintenu confidentiel et ne peut pas être traité au premier plan, mais ne peut être placé que dans le backend. J'ai donc choisi de le mettre dans la couche de contrôle
Exemple de code
// pause dans tout texte qui doit être chiffré pour le chiffrement pour le cryptage public statique statique getmd5 (chaîne de chaîne) {try {messagediGest md = MessagediGest.getInstance ("md5"); md.update (string.getBytes); hachage d'octet = md.digest; StringBuffer sb = new StringBuffer; int i = 0; for (int offset = 0; offset <hash.length; offset ++) {i = hash [offset]; if (i <0) {i + = 256; } if (i <16) {sb.append ("0"); } sb.append (Integer.tohexString (i)); } return sb.toString; } catch (NoSuchalgorithMexception e) {Throw New RuntimeException (e); }}Voici le chiffrement 32 bits, et la différence entre 16 bits et 32 bits est que le 16 bits est le 16 bits au milieu de 32 bits.
String Password_ = String.ValueOf ((int) (math.random * 1000000)); if (empservice.updateEMPSPassword (emp_id_, basiqueUtils.getmd5 (mot de passe_), opérateur) == 0) {Throw New RuntimeException ("La génération de mot de passe aléatoire a échoué!"); } String xele = "<NendMessage> <am_name>" + emp_code_ + "</m_name> <phonenum> </thonenum> <Dédermid> </derrid> <essagetxt> Le nouveau mot de passe pour votre système officiel de gestion de documents est:" + mot de passe) pass </pype> <caccès> </ access> <e-mail> </-e-mail> <sback> </sback> <isencrypt> </isencrypt> <spriority> </spriority> <hter1> </ohter1> <hter2> </ohter2> </endMessage> <br /> ";Ensuite, appelez l'interface réservée au réseau instantané
instancemsgService.amTomessifcheck (xele, null, opérateur);
Remarque: cela dépend principalement de la façon d'utiliser le cryptage MD5 dans le backend Java! !
Conclusion
Ce qui précède consiste à mettre en œuvre des méthodes de cryptage MD5 sur le backend Java. J'espère que cet article sera utile à tout le monde d'apprendre Java. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à Wulin.com.