GeeksforGeeks

Definição:
Em Criptografia, SHA é a função de hash criptográfico que toma entrada como 20 Bytes e renderiza o valor de hash em número hexadecimal, 40 dígitos de comprimento aprox.

p>Message Digest Class:
Para calcular o valor de hash criptográfico em Java, é utilizada a MessageDigest Class, sob o pacote java.security.

MessagDigest Class fornece a seguinte função de hash criptográfico para encontrar o valor de hash de um texto, são:

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

Estes Algoritmos são inicializados em método estático chamado getInstance(). Após seleccionar o algoritmo, calcula o valor digerido e retorna os resultados em byte array.

É utilizada a classe BigInteger, que converte o byte array resultante na sua representação de grandeza de sinal. Esta representação é convertida em formato hexadecimal para obter a mensagemDigest

Exemplos:

Input : hello worldOutput : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9Input : GeeksForGeeksOutput : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290ade

>/p>

>/p>

>br>

importjava.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)

div> {

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);
}

}
}


Saída:

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

Aplicação:

  1. Cryptography
  2. Integridade dos dados
Etiquetas de artigos :

Java

Etiquetas de Prática :

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *