Este artículo describe el método para implementar el algoritmo SHA en Java. Compártelo para su referencia, como sigue:
Una breve introducción
Algoritmo de hashing seguro
Información de resumen de longitud fija
Dos algoritmo SHA
SHA-1, SHA-2 (SHA-224, SHA-256, SHA384, SHA-512)
Tres implementación del algoritmo SHA
paquete com.imooc.security.sha; import java.security.messageGest; import java.security.nosuchalgorithmexception; import java.security.seCurity; import opache.commons.codec.binary org.bouncycastle.crrypto.digest; import org.bouncycastle.crypto.digests.sha1digest; importar org.bouncycastle.crypto.digests.sha224digest; importar org.bouncycastle.jce.provider.bouncycastleprovider; public class IMoocsha {private string src = "Cakin24 Security Sha"; public static void main (string [] args) {jdksha1 (); bcsha1 (); bcsha224 (); ccsha1 (); } public static void jdksha1 () {try {MessageDigest md = MessageDigest.getInstance ("Sha"); md.update (src.getBytes ()); System.out.println ("JDK SHA-1:" + hex.encodeHexString (md.digest ())); } Catch (nosuchalgorithMexception e) {E.PrintStackTrace (); }} public static void bcsha1 () {digest digest = new Sha1Digest (); digest.update (src.getBytes (), 0, src.getbytes (). longitud); byte [] sha1bytes = new Byte [digest.getDigestSize ()]; digest.dofinal (Sha1bytes, 0); System.out.println ("BC Sha-1:" + org.bouncycastle.util.encoders.hex.tohexstring (sha1bytes)); } public static void bcsha224 () {digest digest = new sha224digest (); digest.update (src.getBytes (), 0, src.getbytes (). longitud); byte [] sha224bytes = new Byte [digest.getDigestSize ()]; digest.dofinal (sha224bytes, 0); System.out.println ("BC SHA-224:" + org.bouncycastle.util.encoders.hex.tohexstring (sha224bytes)); } public static void ccsha1 () {system.out.println ("cc sha1 - 1:" + digestutils.sha1hex (src.getBytes ())); System.out.println ("CC Sha1 - 2:" + digestutil.sha1hex (src)); } // 384, 256, 512 .. . . . . }Cuatro resultados de ejecución
JDK SHA-1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
BC SHA-1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
BC SHA-224: AE3B58439CD53D28455781FE6DC20C83A45D63E1D9550330C7911F58
CC SHA1 - 1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
CC SHA1 - 2: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
Aplicación de cinco algoritmo de SHA
PD: Los amigos interesados en el cifrado y el descifrado también pueden referirse a las herramientas en línea de este sitio:
Herramienta de cifrado en línea SHA1:
http://tools.vevb.com/password/sha1encode
Herramientas de cifrado y descifrado en línea de texto (incluyendo AES, DE, RC4, etc.):
http://tools.vevb.com/password/txt_encode
Herramienta de cifrado de algoritmo de hash/hash en línea:
http://tools.vevb.com/password/hash_encrypt
MD5 en línea/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160 herramienta de cifrado:
http://tools.vevb.com/password/hash_md5_sha
En línea SHA1/SHA224/SHA256/SHA384/SHA512 Herramienta de cifrado:
http://tools.vevb.com/password/sha_encode
Para obtener más información sobre el contenido relacionado con Java, consulte los temas de este sitio: "Resumen de las habilidades de operación matemática de Java", "Tutorial sobre estructuras de datos de Java y algoritmos", "Resumen de caracteres de Java y habilidades de operación de cadenas", "Resumen de las habilidades de nodo DOM de Java" y "Resumen de las habilidades de operación de matriz de Java" "
Espero que este artículo sea útil para la programación Java de todos.