Este artigo descreve o método de implementar o algoritmo SHA em Java. Compartilhe -o para sua referência, como segue:
Uma breve introdução
Algoritmo de hash seguro
Informações de resumo do comprimento fixo
Dois algoritmo SHA
SHA-1, SHA-2 (SHA-224, SHA-256, SHA384, SHA-512)
Implementação do algoritmo de três SHA
pacote com.imooc.security.sha; importar java.security.messagedigest; importar java.security.nosuchalgorithMexception; importar java.security.security; importação org.apache.commons.codec.binary.hest; import.apache.commons.commons.codec.codec.binary.hest; org.bouncycastle.crypto.digest; importar org.bouncycastle.crypto.digests.sha1digest; importar org.bouncycastle.crypto.digests.sha224digest; import.bouncycycastle.jce.ProVer.BounClic; 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 (). comprimento); byte [] sha1bytes = novo byte [diger.getDigestSize ()]; Digest.Dofinal (sha1bytes, 0); System.out.println ("bc sha-1:" + org.bouncycastle.util.encoders.hex.tohexstring (sha1bytes)); } public static void bcsha2224 () {digery digery = new sha224Digest (); Digest.Update (src.getbytes (), 0, src.getbytes (). comprimento); byte [] sha224bytes = novo byte [diger.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:" + digestutils.sha1hex (src)); } // 384, 256, 512.. . . . . }Quatro resultados de execução
JDK SHA-1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
BC SHA-1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
BC SHA-224: AE3B58439CD53D28455781FE6DC20C83A45D63E1D9550330C7911F58
CC SHA1 - 1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
CC SHA1 - 2: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
Cinco Aplicação de Algoritmo SHA
PS: Amigos interessados em criptografia e descriptografia também podem se referir às ferramentas on -line deste site:
Ferramenta de criptografia sha1 online:
http://tools.vevb.com/password/sha1encode
Texto Ferramentas de criptografia e descriptografia on -line (incluindo AES, DES, RC4, etc.):
http://tools.vevb.com/password/txt_encode
Ferramenta de criptografia de algoritmo de hash/hash online:
http://tools.vevb.com/password/hash_encrypt
Online md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160 ferramenta de criptografia:
http://tools.vevb.com/password/hash_md5_sha
Online SHA1/SHA224/SHA256/SHA384/SHA512 Ferramenta de criptografia:
http://tools.vevb.com/password/sha_encode
Para obter mais informações sobre o conteúdo relacionado a Java, consulte os tópicos deste site: "Resumo das habilidades de operação matemática de Java", "Tutorial sobre estruturas e algoritmos de dados Java", "Resumo dos caracteres Java e habilidades de operação de cordas", "Resumo das habilidades de operação de Java Operating Node" e "Resumo de Jav
Espero que este artigo seja útil para a programação Java de todos.