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 calcularSHA512(texto: String): String { val md = MessageDigest.getInstance("SHA-512") val byteArray = md.digest(texto.toByteArray()) val numeroEnHexadecimal = BigInteger(1, byteArray) var hashSHA512 = numeroEnHexadecimal.toString(16) while (hashSHA512.length < 128) { hashSHA512 = "0$hashSHA512" } return hashSHA512 } fun main() { val texto = "Hola, mundo!" val hashSHA512 = calcularSHA512(texto) println("SHA-512 de '$texto': $hashSHA512") } |
Explicación del código:
- Función
calcularSHA512
:- Toma una cadena de texto como parámetro.
- Obtiene una instancia del algoritmo de hash SHA-512 utilizando
MessageDigest.getInstance("SHA-512")
. - Convierte la cadena de texto en un arreglo de bytes utilizando
texto.toByteArray()
. - Calcula el hash utilizando
md.digest()
y lo almacena enbyteArray
. - Convierte el arreglo de bytes en un número hexadecimal utilizando
BigInteger(1, byteArray)
. - Almacena el número hexadecimal en la variable
numeroEnHexadecimal
. - Convierte este número a una cadena hexadecimal y asegura que tenga una longitud de 128 caracteres (512 bits) agregando ceros a la izquierda si es necesario.
- Retorna el hash SHA-512 como una cadena en formato hexadecimal.
- Función
main
:- Define una cadena de texto: «Hola, mundo!».
- Calcula su hash SHA-512 usando la función
calcularSHA512
. - Muestra por consola el hash SHA-512 obtenido para la cadena de texto proporcionada.
