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:
- MD5
- SHA-1
- SHA-256
- Criptografía
- Integridad de los datos
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;
import
java.nio.charset.StandardCharsets;
import
java.security.MessageDigest;
import
java.security.NoSuchAlgorithmException;
class
GFG {
public
static
byte
getSHA(String input)
throws
NoSuchAlgorithmException
{
MessageDigest md = MessageDigest.getInstance(
"SHA-256"
);
return
md.digest(input.getBytes(StandardCharsets.UTF_8));
}
public
static
String toHexString(
byte
hash)
{
BigInteger number =
new
BigInteger(
1
, hash);
StringBuilder hexString =
new
StringBuilder(number.toString(
16
));
while
(hexString.length() <
32
)
{
hexString.insert(
0
,
'0'
);
}
return
hexString.toString();
}
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)));
}
catch
(NoSuchAlgorithmException e) {
System.out.println(
"Exception thrown for incorrect algorithm: "
+ e);
}
}
}
HashCode Generated by SHA-256 for:GeeksForGeeks : 112e476505aab51b05aeb2246c02a11df03e1187e886f7c55d4e9935c290adehello world : b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Aplicación: