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.BigInteger
yimport 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óncalcularMD5
que 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.
