Cet exemple décrit l'utilisation du codage et du décodage hexadécimales pour implémenter le cryptage et le décryptage AES. Partagez-le pour votre référence, comme suit:
Ici, la méthode de cryptage et de décryptage AES est codée et décodée à l'aide de HEX.
package com.baidu.wallet.bdwallet.utils; import java.io.unsupportedEncodingException; import java.security.invalidkeyException; import java.security.nosuchalgorithmexception; SizeException; import javax.crypto.nosuchpaddingException; importation javax.crypto.spe.secretkeyspec; import org.apache.commons.codec.decoderexception; import org.apache.commons.codec.binary.hex; test public {private static string aes = "aes"; lance Decoderexception * / octet statique privé [] Encrypt (String Content, String pkey) lance DecodeRexception {Try {String private_key = pkey; ; Cipher.getInstance ("AES / ECB / PKCS5PADDING"); ; Catch (invalidkeyException e) {e.PrintStackTrace (); @param contenu * @param mot de passe * @return * @throws decoderexception * / octet statique privé [] Decrypt (contenu de la chaîne, mot de passe de chaîne) lance DecodeRexception {try {// Utilisez Hex pour décoder le bytet de chiffre CharArray ()); SecretKeyspec Key = New SecretKeyspec (EncodeFormat, AES); Cipher = Cipher.getInstance (AES); e) {e.PrintStackTrace ();} catch (invalidkeyException e) {e.printStackTrace (); (IllégalBlockSizeException e) {e.PrintStackTrace ();} Catch (BadPaddingException e) {e.printStackTrace (); // Le texte en clair crypté devient l'octet de texte chiffré [] EncrypTresult = Encrypt (contexte, Private_Key); Contexte de chaîne, String private_key) lève DecodeRerexception, UNSUPPORTEDENCODEDINGException {// Le décodage hexagonal est effectué avant de décréter le texte cipher ici Byte [] DecryPTeLt = Decrypt (context, private_key); String Result = NEW STATIC (DecryPTeLt, UTF8); 3456787654321 "; // AES CRYPTION ET DESCRAYPTION KEY STRING PASSUS =" Cette valeur est généralement donnée, les deux expéditeurs savent "; // Encrypt System.out.println (avant le cryptage: "+ Contenu); ln ("après décryptage:" + résultat);Il n'y a aucun problème avec cette méthode dans les projets formels.
La méthode ci-dessus est utilisée dans org.apache.commons.codec.binary.hex.
<Dependance> <GroupId> Commons-codec </proupId> <ArtefactId> Commons-codec </retifactid> <version> 1.4 </ version> </Dependency>
Remarque: vous devez utiliser la version 1.4 et supérieure ici, et il ne devrait pas y avoir de méthode hex.endehexstring (byte []) en dessous de 1.4!
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:
Détection en ligne de sécurité de mot de passe:
http://tools.vevb.com/password/my_password_safe
Générateur de mots de passe à haute résistance:
http://tools.vevb.com/password/createstrongpassword
Outils de chiffrement / décryptage des URL express et express et de tornade:
http://tools.vevb.com/password/urlrethunder
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
J'espère que cet article sera utile à la programmation Java de tous.