Tout d'abord, comprenons l'implémentation du cryptage MD5 du chiffre suivant, comme suit
Package com.pb; Importer java.io.unsupportedEncodingException; Importer java.security.MessagediGest; Importer java.security.nosuchalgorithMexception; Importer java.util.scanner; / * * Vérifier MD5 * 1. Initialiser l'information MessageDigest L'objet Sommaire *. Résumé * 4. Convertir l'octet [] en une chaîne hexadécimale avec une recherche 32 bits * / classe publique md5 {/ * * générer md5 avec passant dans la chaîne de paramètre * / public void generatemd5 (string input) {try {// 1. Initialisez l'objet Résumé des informations MessagediGest et spécifiez-le comme MD5 sans MessagediGest MessageDIGest indépendant du cas = MessagediGest.getInstance ("MD5"); // 2. Passez dans la chaîne à calculer pour mettre à jour les informations de résumé, la transmission est passée le tableau d'octets Byte [], // converti la chaîne en tableau d'octets à l'aide de la méthode getBytes () // Lorsque spécifiée, son codage de caractères est utf-8 md.update (input.getbytes ("utf-8")); // 3. Calculez le résumé des informations digest () Méthode // RETOUR La valeur est l'octet du tableau d'octets [] hashcode = md.digest (); // 4. Convertir l'octet [] Convertir en une chaîne hexadécimale avec une recherche 32 bits // Déclarez un objet StringBuffer pour stocker la dernière valeur StringBuffer SB = new StringBuffer (); // transférer le tableau d'octets pour (octet b: hashcode) {// convertir le contenu du tableau en hexadécimal, sb.append (caractère.fordigit (b >> 4 & 0xf, 16)); // Transfert vers le HexaDecimal SB.APPEND 32 bits (personnage.fordigit (B & 0xf, 16)); } System.out.println ("Le résultat après cryptage est:" + sb.toString ()); } Catch (NosuchalgorithMexception e) {// Bloc de capture généré automatiquement de TODO E.PrintStackTrace (); } catch (UnportEnCoDingException e) {// Bloc de catch généré automatiquement de TODO E.PrintStackTrace (); }} public static void main (String [] args) {// Déclare l'objet qui crypte la classe MD5 md5 md5 = new md5 (); // Utilisez le scanner pour entrer un scanner de caractères Scanner = nouveau scanner (System.in); System.out.println ("Veuillez saisir le contenu à crypter:"); String input = Scanner.NextLine (); // Appel de la méthode de chiffrement MD5.GenerateMD5 (entrée); }} résultat:
Veuillez saisir le contenu à crypter:
Le résultat après avoir appris le processus de chiffrement de MD5 est: B826CDAC46F01DCC8CCC60A76CEBF858
Deuxième code:
package test.md5; import java.security.MessagediGest; classe publique md5util {public final statique statique md5 (chaîne s) {char hexDigits [] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; essayez {byte [] btinput = s.getBytes (); // Obtenez l'objet MessagediGest de l'algorithme MD5 Digest MessagediGest mdinst = MessagediGest.getInstance ("MD5"); // Mette à jour le digest mdinst.update (btinput); // obtient l'octet de chiffre d'affaires [] md = mdinst.digest (); // Convertir le texte chiffré en une forme de chaîne hexagonale int j = md.length; char Str [] = new Char [J * 2]; int k = 0; for (int i = 0; i <j; i ++) {byte byte0 = md [i]; str [k ++] = hexDigits [byte0 >>> 4 & 0xf]; str [k ++] = hexDigits [byte0 & 0xf]; } return new String (str); } catch (exception e) {e.printStackTrace (); retourner null; }} public static void main (String [] args) {System.out.println (md5util.md5 ("20121221")); System.out.println (md5util.md5 ("cryptage")); }}Le troisième morceau de code: Implémentation 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")); }}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.