1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec import java.security.MessageDigest fun generateHmacMD5(key: String, text: String): String { val hmacKey = SecretKeySpec(key.toByteArray(), "HmacMD5") val mac = Mac.getInstance("HmacMD5") mac.init(hmacKey) val digest = mac.doFinal(text.toByteArray()) val result = StringBuilder() for (byte in digest) { result.append(String.format("%02x", byte)) } return result.toString() } fun main() { val key = "mySecretKey" val plainText = "Hola, mundo!" val hmacMD5 = generateHmacMD5(key, plainText) println("Texto plano: $plainText") println("HMAC-MD5: $hmacMD5") } |
En este ejemplo, se utiliza la clase Mac
de Java para generar el resumen HMAC con el algoritmo MD5. Se proporciona una clave secreta (key
) y el texto de entrada (text
). El resultado se formatea como una cadena hexadecimal utilizando el bucle for
.
Asegúrate de reemplazar "mySecretKey"
con tu clave secreta deseada. El resultado del resumen HMAC-MD5 se imprimirá en la consola junto con el texto plano de entrada.
Otra solución
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec fun main() { val mensaje = "Este es el mensaje" val claveSecreta = "clave_secreta" // Generar HMAC-MD5 val hmacMD5 = generarHmacMD5(mensaje, claveSecreta) // Mostrar el resultado como una cadena legible println(hmacMD5) } fun generarHmacMD5(mensaje: String, claveSecreta: String): String { val algorithm = "HmacMD5" val keySpec = SecretKeySpec(claveSecreta.toByteArray(), algorithm) val mac = Mac.getInstance(algorithm) mac.init(keySpec) val hmacBytes = mac.doFinal(mensaje.toByteArray()) return hmacBytes.joinToString("") { "%02x".format(it) } } |