Saltar al contenido

¿Cómo codificar una contraseña con SHA-512 en Java?

Solución:

puedes usar esto para SHA-512

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public String get_SHA_512_SecurePassword(String passwordToHash, String salt){
    String generatedPassword = null;
    try {
        MessageDigest md = MessageDigest.getInstance("SHA-512");
        md.update(salt.getBytes(StandardCharsets.UTF_8));
        byte[] bytes = md.digest(passwordToHash.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for(int i=0; i< bytes.length ;i++){
            sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
        }
        generatedPassword = sb.toString();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return generatedPassword;
}

¡Deje de usar funciones hash para codificar contraseñas! No brindan la protección que necesita. En su lugar, debería utilizar un algoritmo como PBKDF2, bcrypt o scrypt.

Referencias:

  • http://blog.tjll.net/please-stop-hashing-passwords/
  • http://security.blogoverflow.com/2011/11/why-passwords-should-be-hashed/
  • https://crackstation.net/hashing-security.htm
  • http://www.sitepoint.com/risks-challenges-password-hashing/
  • http://security.blogoverflow.com/2013/09/about-secure-password-hashing/

Usando guayaba:

Hashing.sha512().hashString(s, StandardCharsets.UTF_8).toString()
¡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 *