GeeksforGeeks

Definición:
En la criptografía, SHA es la función hash criptográfica que toma la entrada como 20 Bytes y rinde el valor hash en número hexadecimal, 40 dígitos de largo aprox.

Clase MessageDigest:
Para calcular el valor hash criptográfico en Java, se utiliza la clase MessageDigest, bajo el paquete java.security.

La clase MessageDigest 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
    1. Estos algoritmos se inicializan en el método estático llamado getInstance(). Después de seleccionar el algoritmo se calcula el valor del digesto y se devuelven los resultados en una matriz de bytes.

      Se utiliza la clase BigInteger, que convierte la matriz de bytes resultante en su representación de signo-magnitud. Esta representación se convierte en formato hexadecimal para obtener el MessageDigest

      Ejemplos:

      Input : hello worldOutput : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9Input : GeeksForGeeksOutput : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290ade

      import

      java.math.BigInteger;

      importjava.nio.charset.StandardCharsets;

      importjava.security.MessageDigest;

      importjava.security.NoSuchAlgorithmException;

      classGFG {

      publicstaticbyte getSHA(String input) throwsNoSuchAlgorithmException

      {

      MessageDigest md = MessageDigest.getInstance("SHA-256");

      returnmd.digest(input.getBytes(StandardCharsets.UTF_8));

      }

      publicstaticString toHexString(byte hash)
      {

      BigInteger number = newBigInteger(1, hash);

      StringBuilder hexString = newStringBuilder(number.toString(16));

      while(hexString.length() < 32)

      {

      hexString.insert(0, '0');

      }

      returnhexString.toString();

      }

      publicstaticvoidmain(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)));

      }

      catch(NoSuchAlgorithmException e) {
      System.out.println("Exception thrown for incorrect algorithm: "+ e);

      }

      }

      }

      
      
      
      
      
      

      Salida:

      HashCode Generated by SHA-256 for:GeeksForGeeks : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290adehello world : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

      Aplicación:

      1. Criptografía
      2. Integridad de los datos
        1. Etiquetas del artículo :

          Java

          Etiquetas de la práctica :

Deja una respuesta

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