Cet article décrit la méthode de mise en œuvre de l'algorithme SHA en Java. Partagez-le pour votre référence, comme suit:
Une brève introduction
Algorithme de hachage sécurisé
Informations de résumé de longueur fixe
Deux algorithmes Sha
SHA-1, SHA-2 (SHA-224, SHA-256, SHA384, SHA-512)
Trois implémentation de l'algorithme SHA
package com.imooc.security.sha; import java.security.messagedigest; import java.security.nosuchalgorithmexception; import java.security.security; import org.apache.cocmons.codec.binary.hex; import org.apache.comons.codec.Digest.DIGESTULS; import; org.bouncycastle.crypto.digest; import org.bouncycastle.crypto.digests.sha1digest; import org.bouncycastle.crypto.digests.sha224digest; import org.bouncycastle.jce.provider sringle 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 (). longueur); octet [] 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 (). longueur); octet [] sha224 bytes = new byte [digest.getdigestSize ()]; digest.dofinal (sha224 bytes, 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.. . . . . }Résultats de quatre exécutions
JDK SHA-1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
BC SHA-1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
BC SHA-224: AE3B58439CD53D28455781FE6DC20C83A45D63E1D9550330C7911F58
CC SHA1 - 1: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
CC SHA1 - 2: BA28A0F5F08EFC8AFAEE4706FFD496E1F88BEFDB
Application de l'algorithme SHA
PS: Les amis qui sont intéressés par le cryptage et le décryptage peuvent également se référer aux outils en ligne de ce site:
Outil de cryptage SHA1 en ligne:
http://tools.vevb.com/password/sha1encode
Texte en ligne de chiffrement et de décryptage (y compris AES, DES, RC4, etc.):
http://tools.vevb.com/password/txt_encode
Outil de chiffrement en ligne de hachage / hachage de hachage:
http://tools.vevb.com/password/hash_encrypt
MD5 / HASH / SHA-1 / SHA-2 / SHA-256 / SHA-512 / SHA-3 / RIMEMD-160 Tool:
http://tools.vevb.com/password/hash_md5_sha
En ligne SHA1 / SHA224 / SHA256 / SHA384 / SHA512 Outil de cryptage:
http://tools.vevb.com/password/sha_encode
Pour plus d'informations sur le contenu lié à Java, veuillez consulter les sujets de ce site: "Résumé des compétences en fonctionnement mathématique de Java", "Tutorial sur les structures de données Java et les algorithmes", "Résumé des caractères Java et des compétences de fonctionnement de la chaîne", "Résumé des compétences de nœuds DOM opérationnelles Java" et "Résumé des compétences en opération de Java ARRING"
J'espère que cet article sera utile à la programmation Java de tous.