Hachís SHA-256 en Java

Definición: 
En criptografía, SHA es una función hash criptográfica que toma la entrada como 20 bytes y representa el valor hash en número hexadecimal, 40 dígitos de longitud aprox.
Clase Message Digest: 
para calcular el valor hash criptográfico en Java, se usa MessageDigest Class, bajo el paquete java.security.
MessagDigest Class proporciona la siguiente función hash criptográfica para encontrar el valor hash de un texto, son: 

  1. MD5
  2. SHA-1
  3. SHA-256

Estos algoritmos se inicializan en un método estático llamado getInstance() . Después de seleccionar el algoritmo, calcula el valor de resumen y devuelve los resultados en una array de bytes.
Se utiliza la clase BigInteger, que convierte la array de bytes resultante en su representación de magnitud de signo. Esta representación se convierte en formato hexadecimal para obtener el MessageDigest

Ejemplos: 

Input : hello world
Output: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Input : GeeksForGeeks
Output: 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290ade

Input : K1t4fo0V
Output: 0a979e43f4874eb24b740c0157994e34636eed0425688161cc58e8b26b1dcf4e

Java

import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
// Java program to calculate SHA hash value
 
class GFG2 {
    public static byte[] getSHA(String input) throws NoSuchAlgorithmException
    {
        // Static getInstance method is called with hashing SHA
        MessageDigest md = MessageDigest.getInstance("SHA-256");
 
        // digest() method called
        // to calculate message digest of an input
        // and return array of byte
        return md.digest(input.getBytes(StandardCharsets.UTF_8));
    }
     
    public static String toHexString(byte[] hash)
    {
        // Convert byte array into signum representation
        BigInteger number = new BigInteger(1, hash);
 
        // Convert message digest into hex value
        StringBuilder hexString = new StringBuilder(number.toString(16));
 
        // Pad with leading zeros
        while (hexString.length() < 64)
        {
            hexString.insert(0, '0');
        }
 
        return hexString.toString();
    }
 
    // Driver code
    public static void main(String args[])
    {
        try
        {
            System.out.println("HashCode Generated by SHA-256 for:");
 
            String s1 = "GeeksForGeeks";
            System.out.println("\n" + s1 + " : " + toHexString(getSHA(s1)));
 
            String s2 = "hello world";
            System.out.println("\n" + s2 + " : " + toHexString(getSHA(s2)));
             
            String s3 = "K1t4fo0V";
            System.out.println("\n" + s3 + " : " + toHexString(getSHA(s3)));
        }
        // For specifying wrong message digest algorithms
        catch (NoSuchAlgorithmException e) {
            System.out.println("Exception thrown for incorrect algorithm: " + e);
        }
    }
}

Producción:

HashCode Generated by SHA-256 for:

GeeksForGeeks : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290ade

hello world : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

K1t4fo0V : a979e43f4874eb24b740c0157994e34636eed0425688161cc58e8b26b1dcf4e

Solicitud: 
 

  1. Criptografía
  2. Integridad de los datos

Publicación traducida automáticamente

Artículo escrito por bilal-hungund y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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