Primeiro, vamos entender a implementação de criptografia MD5 da figura a seguir, como segue
pacote com.pb; importar java.io.unsupportEdEncodingException; importar java.security.MessAgedigest; importar java.Security.NosuchalGorithMexception; importar o SUPLATULADO. Resumo* 4. Converta byte [] em uma string hexadecimal com uma pesquisa de 32 bits*/public class Md5 {/** Gere md5 com passado no parâmetro string*/public void generatemd5 (string input) {try {// 1. Inicialize o objeto de resumo da informação Messagedigest e especifique-o como MD5 sem Messagedigest Independente de Caso MD = Messagedigest.getInstance ("MD5"); // 2. Passe a string a ser calculada para atualizar as informações de resumo, o passado é o Byte Array Byte [], // converte a String em matriz de bytes usando o método getBytes () // Quando especificado, sua codificação de caracteres é utf-8 md.update (input.getbytes ("utf-8"); // 3. Calcule o método resumo do resumo da informação () // retorna o valor é o byte matriz byte [] hashcode = md.digest (); // 4. Converter byte [] converta em uma sequência hexadecimal com uma pesquisa de 32 bits // Declare um objeto StringBuffer para armazenar o último valor StringBuffer sb = new StringBuffer (); // transfira a matriz de bytes para (byte b: hashcode) {// converte o conteúdo da matriz em hexadecimal, sb.append (caractere.fordigit (b >> 4 & 0xf, 16)); // Transfira para o sb.append HEXADECIMAL SB.APNEND (CARATRAÇÃO.FORDIGIT (B & 0XF, 16)); } System.out.println ("O resultado após a criptografia é:"+sb.toString ()); } catch (nosuchalgorithMexception e) {// TODO BLOCO DE CATAGEM AUTOGERATION E.PRINTSTACKTRACE (); } Catch (UnsupportEdEnCodingException e) {// TODO BLOCO DE CATAGEM AUTOGERATO E.PRINTSTACKTRACE (); }} public static void main (string [] args) {// Declare o objeto que criptografa a classe md5 md5 md5 = new md5 (); // use scanner para inserir um scanner de caracteres = new scanner (System.in); System.out.println ("Por favor, insira o conteúdo a ser criptografado:"); String input = scanner.NextLine (); // chamando o método de criptografia md5.generatemd5 (entrada); }} resultado:
Por favor, insira o conteúdo para ser criptografado:
O resultado após aprender o processo de criptografia do MD5 é: B826CDAC46F01DCC8CCCC60A76CEBF858
Segundo código:
pacote test.md5; importar java.security.messagedigest; public class md5util {public final static string md5 (string s) {char hexdigits [] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'e', 'f'}; tente {byte [] btinput = s.getBytes (); // Obtenha o objeto Messagedigest do algoritmo MD5 Digest Messagedigest mdInst = Messagedigest.getInstance ("md5"); // Atualize o Digest MdInst.Update (BTInput); // obtenha o byte ciphertext [] md = mdinst.digest (); // Converta o CipherText em um formulário de sequência hexadecimal int j = md.length; char str [] = novo 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]; } retornar nova string (str); } catch (Exceção e) {e.printStackTrace (); retornar nulo; }} public static void main (string [] args) {System.out.println (md5util.md5 ("20121221")); System.out.println (md5util.md5 ("criptografia")); }}A terceira peça de código: Implementação Java do algoritmo de criptografia 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 () {} // retorna o formulário como número e string string estática privada bytetoarraystring (byte bbyte) {int iret = bbyte; // System.out.println ("Iret ="+IRET); if (IRET <0) {Iret += 256; } int id1 = IRET / 16; int id2 = IRET % 16; retornar strdigits [id1] + strdigits [id2]; } // O formulário de retorno é apenas um dígito de string estática privada bytetonum (byte bbyte) {int iret = bbyte; System.out.println ("Iret1 =" + IRET); if (IRET <0) {Iret += 256; } return string.valueof (IRET); } // Converta a matriz de byte em uma string hexadecimal string privada static string bytetoString (byte [] bbyte) {stringbuffer sbuffer = new StringBuffer (); for (int i = 0; i <bbyte.length; i ++) {sbuffer.append (bytetoarraystring (bbyte [i])); } return sbuffer.toString (); } public static string getMd5Code (string strobj) {string resgationtring = null; tente {ResultsTring = new String (strobj); Messagedigest md = Messagedigest.getInstance ("md5"); // md.digest () O valor de retorno desta função é a matriz de bytes que armazena a troca de resultados de hash = bytetoString (md.digest (strobj.getbytes ())); } catch (nosuchalgorithMexception ex) {ex.printStackTrace (); } retornar a troca de resultados; } public static void main (string [] args) {md5 getMd5 = novo md5 (); System.out.println (getMd5.getMd5Code ("000000")); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.