Cet article décrit la définition et l'utilisation de l'algorithme de chiffrement symétrique 3DES implémenté par Java. Partagez-le pour votre référence, comme suit:
1. Pourquoi 3des apparaît
1. Retour au principe de Kirkhoff
2. Il y a des problèmes de sécurité
Deux avantages 3des (Triple des ou Deede)
1. Amélioration de la longueur des clés
2. Augmenter le nombre d'itérations
Trois paramètres liés à 3des
Quatre implémentation du code 3des
Package com.imooc.security.des; import java.security.key; import java.security.securèère et importer javax.crypto.cipher; import javax.crypto.keygenerator; import javax.crypto.secretkey; import javax.crypto.secretkeyfactory; import javax.crypto.spe.desedekeyspec; import org.apache.commons.codec.binary.base64; classe publique imooc3des {chaîne statique privée src = "Cakin24 Security 3Des"; public static void main (String [] args) {jdk3des (); } public static void jdk3des () {try {// générer key keyGenerator keyGenerator = keyGenerator.getInstance ("Deede"); //keyGenerator.init(168); keyGenerator.init (new SecureRandom ()); // Longueur par défaut SecretKey SecretKey = KeyGenerator.GenerateKey (); Byte [] bytesKey = SecretKey.getEncoded (); // Conversion clé DeedekeySpec DeedekeySpec = new Deedekeyspec (byteskey); SecretKeyFactory Factory = SecretKeyFactory.getInstance ("Deede"); Key convertsecretKey = factory.GenerateSeCret (Dedekeyspec); // Encryption Cipher Cipher = Cipher.getInstance ("Deede / ECB / PKCS5PADDING"); cipher.init (cipher.encrypt_mode, convertsecretkey); BYTE [] result = cipher.dofinal (src.getBytes ()); System.out.println ("JDK 3DES Encrypt:" + Base64.EncodeBase64String (résultat)); // Decrypt Cipher.init (cipher.decrypt_mode, convertsecretKey); résultat = cipher.dofinal (résultat); System.out.println ("JDK 3DES Decrypt:" + Nouvelle chaîne (résultat)); } catch (exception e) {e.printStackTrace (); }}}Cinq réalisations
JDK 3des Encrypt: 6t7a / rnardzsl + mtezvbfxwnnzr0yjbw
JDK 3des Decrypt: Cakin24 Security 3DES
Remarque: org.apache.commons.codec.binary.Base64 est introduit ici, et vous pouvez cliquer ici pour télécharger ce site .
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:
Outils de chiffrement / de décryptage en ligne:
http://tools.vevb.com/password/des_encode
Texte en ligne de chiffrement et de décryptage (y compris AES, DES, RC4, etc.):
http://tools.vevb.com/password/txt_encode
Outil de cryptage en ligne MD5:
http://tools.vevb.com/password/createmd5password
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 l'opération de chaîne", "Résumé de l'opération Java Dom Skills" et "Résumé des compétences de l'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.