El MD2 es un algoritmo de resumen de mensajes. Es una función hash criptográfica desarrollada por Ronald Rivest en 1989 . Está optimizado para ordenadores de 8 bits. El algoritmo MD2 se utiliza en infraestructuras de clave pública como parte de los certificados generados con MD2 y RSA. A partir de 2014, este algoritmo ya no se considera un algoritmo seguro.
Para calcular el valor hash criptográfico en Java, se usa MessageDigest Class , bajo el paquete java.security .
MessagDigest Class proporciona la siguiente función hash criptográfica para encontrar el valor hash de un texto de la siguiente manera:
- MD2
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
Estos algoritmos se inicializan en un método estático llamado getInstance() . Después de seleccionar el algoritmo, se calcula el valor de resumen del mensaje y los resultados se devuelven como una array de bytes. Se utiliza la clase BigInteger para convertir la array de bytes resultante en su representación signum. Esta representación luego se convierte a un formato hexadecimal para obtener el MessageDigest esperado.
Ejemplos:
Entrada : hola mundo
Salida : d9cce882ee690a5c1ce70beff3a78c77Entrada : GeeksForGeeks
Salida : 787df774a3d25dca997b1f1c8bfee4af
El siguiente programa muestra la implementación del hash MD2 en Java.
// Java program to calculate MD2 hash value import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class GFG { public static String encryptThisString(String input) { try { // getInstance() method is called with algorithm MD2 MessageDigest md = MessageDigest.getInstance("MD2"); // digest() method is called // to calculate message digest of the input string // returned as array of byte byte[] messageDigest = md.digest(input.getBytes()); // Convert byte array into signum representation BigInteger no = new BigInteger(1, messageDigest); // Convert message digest into hex value String hashtext = no.toString(16); // Add preceding 0s to make it 32 bit while (hashtext.length() < 32) { hashtext = "0" + hashtext; } // return the HashText return hashtext; } // For specifying wrong message digest algorithms catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } // Driver code public static void main(String args[]) throws NoSuchAlgorithmException { System.out.println("HashCode Generated by MD2 for: "); String s1 = "GeeksForGeeks"; System.out.println("\n" + s1 + " : " + encryptThisString(s1)); String s2 = "hello world"; System.out.println("\n" + s2 + " : " + encryptThisString(s2)); } }
Salida :
HashCode Generated by MD2 for: GeeksForGeeks : 787df774a3d25dca997b1f1c8bfee4af hello world : d9cce882ee690a5c1ce70beff3a78c77
Solicitud:
- Criptografía
- Integridad de los datos
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA