|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.math.BigInteger import java.security.MessageDigest fun calcularMD5(texto: String): String { val md = MessageDigest.getInstance("MD5") val byteArray = md.digest(texto.toByteArray()) val numeroEnHexadecimal = BigInteger(1, byteArray) var hashMD5 = numeroEnHexadecimal.toString(16) while (hashMD5.length < 32) { hashMD5 = "0$hashMD5" } return hashMD5 } fun main() { val texto = "Hola, mundo!" val hashMD5 = calcularMD5(texto) println("El hash MD5 de '$texto' es: $hashMD5") } |
Explicación línea por línea:
import java.math.BigIntegeryimport java.security.MessageDigest: Importa las clases necesarias para trabajar con la operación MD5 y representar números en formato hexadecimal.fun calcularMD5(texto: String): String { ... }: Define una funcióncalcularMD5que toma una cadena de texto como parámetro y devuelve su hash MD5 como una cadena hexadecimal.val md = MessageDigest.getInstance("MD5"): Obtiene una instancia del algoritmo MD5.val byteArray = md.digest(texto.toByteArray()): Convierte la cadena de texto en un array de bytes y calcula el hash MD5.val numeroEnHexadecimal = BigInteger(1, byteArray): Convierte el array de bytes en un número hexadecimal.var hashMD5 = numeroEnHexadecimal.toString(16): Convierte el número hexadecimal a una cadena de texto.while (hashMD5.length < 32) { ... }: Asegura que la cadena del hash MD5 tenga una longitud de 32 caracteres agregando ceros a la izquierda si es necesario.return hashMD5: Devuelve la cadena que representa el hash MD5.


