Saltar al contenido

Cómo hacer hash algunos string con sha256 en Java?

Luego de de esta prolongada recopilación de datos dimos con la solución esta duda que presentan ciertos de nuestros usuarios. Te compartimos la respuesta y deseamos que resulte de gran apoyo.

Solución:

SHA-256 no es una “codificación”, es un hash unidireccional.

Básicamente convertirías el string en bytes (por ejemplo, usando text.getBytes(StandardCharsets.UTF_8)) y luego hash los bytes. Tenga en cuenta que el resultado del hash sería además ser datos binarios arbitrarios, y si quiere representar eso en un stringdeberías usar base64 o hexadecimal… no intenta usar el String(byte[], String) constructor.

p.ej

MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8));

Creo que la solución más fácil es usar Apache Common Codec:

String sha256hex = org.apache.commons.codec.digest.DigestUtils.sha256Hex(stringText);   

Otra alternativa es Guava, que tiene un conjunto de utilidades Hashing fáciles de usar. Por ejemplo, hacer un hash string usando SHA256 como hexadecimalstring simplemente harías:

final String hashed = Hashing.sha256()
        .hashString("your input", StandardCharsets.UTF_8)
        .toString();

Si conservas alguna cuestión y capacidad de innovar nuestro ensayo te inspiramos añadir una glosa y con placer lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *