El nombre completo de MD5 es Algoritmo 5 de resumen de mensajes. Resumen de mensajes generalmente se refiere a la transformación Hash de una cadena de bytes (Mensaje), que consiste en transformar una cadena de bytes de cualquier longitud en un número entero grande de cierta longitud. MD5 convierte una "cadena de bytes" de cualquier longitud en un entero grande de 128 bits y es un algoritmo de conversión de cadenas irreversible. En otras palabras, incluso si ve el programa fuente y la descripción del algoritmo, no puede convertir un MD5. Convertido nuevamente a la cadena original, matemáticamente hablando, porque hay infinitas cadenas originales, lo cual es un poco como una función matemática que no tiene una función inversa.
Copie el código de código de la siguiente manera:
importar java.security.MessageDigest;
clase pública Test_MD5{
cadena estática final pública MD5 (cadena s) {
char HexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
intentar {
byte[]strTemp=s.getBytes();
//Crea un objeto MessageDigest usando MD5
MessageDigestmdTemp=MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[]md=mdTemp.digest();
intj=md.longitud;
charstr[]=newchar[j*2];
tinta=0;
para(inti=0;i<j;i++){
byteb=md[i];
//System.out.println((int)b);
//Cifrar el número (int)b con bytes dobles
str[k++]=Digitshex[b>>4&0xf];
str[k++]=Digitshex[b&0xf];
}
returnnewString(cadena);
}catch(Exceptione){returnnull;}
}
//prueba
publicstaticvoidmain(String[]argumentos){
System.out.println("cifrado MD5 de caidao:/n"+Test_MD5.MD5("caidao"));
System.out.println("//www.VeVB.COm/ después del cifrado MD5:/n"+Test_MD5.MD5("//www.VeVB.COm/"));
}
}
Una aplicación típica de MD5 es generar una huella digital en un mensaje (cadena de bytes) para evitar que sea "manipulado". Por ejemplo, escribe un párrafo en un archivo llamado readme.txt, genera un valor MD5 para este readme.txt y lo registra. Luego puede difundir este archivo a otros. Si otros modifican el archivo, cualquier contenido lo encontrará. cuando vuelves a calcular el MD5 de este archivo. Si existe una agencia de certificación de terceros, el uso de MD5 también puede evitar el "repudio" del autor del archivo. Esta es la llamada aplicación de cifrado digital.
MD5 también se usa ampliamente en tecnología de cifrado y descifrado. En muchos sistemas operativos, la contraseña del usuario se almacena en forma de valor MD5 (u otros algoritmos similares). Cuando el usuario inicia sesión, el sistema calcula la contraseña ingresada por el usuario. Luego, el valor MD5 se compara con el valor MD5 guardado en el sistema y el sistema no "sabe" cuál es la contraseña del usuario.
MD5 es teóricamente un hash unidireccional y algunos piratas informáticos utilizan un método llamado "ejecución de diccionario" para descifrar esta contraseña. Hay dos formas de obtener un diccionario: una es una colección diaria de tablas de cadenas utilizadas como contraseñas y la otra se genera mediante un método de permutación y combinación. Primero, use el programa MD5 para calcular los valores MD5 de estos elementos del diccionario. y luego use los valores MD5 del objetivo que se buscan en este diccionario.
Incluso si se supone que la longitud máxima de la contraseña es 8, y la contraseña solo puede contener letras y números, un total de 26+26+10=62 caracteres, el número de elementos en el diccionario formado por la permutación es P (62,1)+P(62, 2)....+P(62,8), que ya es un número astronómico. El almacenamiento de este diccionario requiere un grupo de discos de nivel TB, y este método también tiene un requisito previo. que es obtener la cuenta de destino. Esto solo es posible si la contraseña tiene un valor MD5.