Cet article utilise MessagediGest, qui est livré avec Java, pour implémenter l'algorithme de cryptage MD5 pour le texte. Le code spécifique est le suivant:
/ ** * @ Description: Convertir la chaîne en md5 * / package cn.yicha.novel.util; Importer Java.Security.MessagediGest; importer java.security.nosuchalgorithMexception; classe publique Parsemd5 {/ ** * @param str * @return * @description: 32 bits minuscules md5 * / public static String parsestrtomd5l32 (string str) {String suppring = null; essayez {messagediGest md5 = messagediGest.getInstance ("md5"); octet [] bytes = md5.digest (str.getBytes ()); StringBuffer StringBuffer = new StringBuffer (); pour (octet b: octets) {int bt = b & 0xff; if (bt <16) {stringBuffer.append (0); } StringBuffer.APPEND (Integer.tohexString (BT)); } retenue = StringBuffer.ToString (); } catch (NosuchalgorithMexception e) {e.printStackTrace (); } return rest; } / ** * @param str * @return * @Description: 32 bits Uppercase MD5 * / public static String parsestrtomd5u32 (string str) {String restR = Parsestrtomd5l32 (str); if (contrat! = null) {contrat = contrat.toupperase (); } return rest; } / ** * @param str * @return * @description: 16 bits minuscules md5 * / public static String parsestrtomd5u16 (string str) {String restR = parsestrtomd5l32 (str); if (contrat! = null) {contrat = contrat.toupperase (). substring (8, 24); } return rest; } / ** * @param str * @return * @description: 16 bits Uppercase md5 * / public static String parsestrtomd5l16 (String str) {String restR = Parsestrtomd5l32 (str); if (contrat! = null) {contrat = contrat.substring (8, 24); } return rest; }}La deuxième situation: pendant le processus de développement de logiciels Java, certaines données seront inévitablement cryptées. Par conséquent, Java fournit la propre implémentation Messagedigest de l'algorithme de chiffrement pour le texte. Ce qui suit est un exemple du code de l'outil de cryptage MD5 qui crypte le texte:
La version complète de l'algorithme de cryptage MD5 en Java :
package net.yuerwan.comons.util; import java.security.messagedigest; import java.security.nosuchalgorithmexception; import org.apache.commons.lang.stringutils; Contenu chiffré * / chaîne statique publique TextTomd5l32 (String PlainText) {String result = null; // Déterminez d'abord s'il est vide if (stringUtils.isblank (PlainText)) {return null;} try {// premier instanciate et initialize messagediGest md = messagediGest.getInstance Format de la formulation de la fin de la fin de la parole dans le by BYTE du système d'exploitation [] btinput = plaintext.getBytes (); // File le tableau d'octets obtenu md.update (btinput); // déposer le calcul de hachage et renvoyer le résultat octet [] btresult = md.digest (); // ajusté la longueur des données obtenues après le calcul de hachage Stringbuffer sb = new StringBuffer (); pour (byt by by b: byt b: BTRESULT) {int bt = b & 0xff; if (bt <16) {sb.append (0);} sb.append (Integer.tohexString (bt));} result = sb.toString ();} catch (nosuchalgorithMException e) {e.printStackTrace ();} Retour résultat; 32-bits MD5 Uppercase * @param Texte de texte en clair à chiffrer * @return Contenu chiffré * / public static static textTomd5u32 (String PlainText) {if (stringUtils.isblank (plaintexLe troisième cas: mise en œuvre Java de l'algorithme de cryptage MD5
package other;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * MD5 algorithm*/public class MD5 { // global array private final static String[] strDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; public md5 () {} // return Form as Number and String private static String byteToArrayString (byte bbyte) {int iret = bbyte; // System.out.println ("iret =" + iret); if (iret <0) {iret + = 256; } int id1 = iret / 16; int id2 = iret% 16; return strDigits [id1] + strDigits [id2]; } // Le formulaire de retour n'est qu'un chiffre à chaîne statique privée bytetonum (byte bbyte) {int iret = bbyte; System.out.println ("iret1 =" + iret); if (iret <0) {iret + = 256; } return string.valueof (iret); } // Convertir le tableau d'octet en une chaîne hexadecimale privée statique statique byToToString (byte [] bbyte) {stringBuffer sbuffer = new StringBuffer (); for (int i = 0; i <bbyte.length; i ++) {sbuffer.append (byTetoArrayString (bbyte [i])); } return sbuffer.toString (); } public static static getmd5code (String stroBj) {String resulteTring = null; try {resultTring = new String (stroBj); MessagediGest MD = MessagediGest.getInstance ("MD5"); // md.digest () La valeur de retour de cette fonction est le tableau d'octet qui stocke le hash resultsTring = byToToString (md.digest (strobj.getbytes ())); } catch (NosuchalgorithMexception ex) {ex.printStackTrace (); } return resultTring; } public static void main (String [] args) {md5 getmd5 = new MD5 (); System.out.println (getmd5.getmd5code ("000000")); }}