Este artículo describe la definición y el uso del algoritmo de cifrado simétrico 3DES implementado por Java. Compártelo para su referencia, como sigue:
1. Por qué aparece 3DES
1. Regreso al principio de Kirkhoff
2. Hay problemas de seguridad
Dos beneficios 3DE (triple des o desede)
1. Mejora de longitud de llave
2. Aumente el número de iteraciones
Tres parámetros relacionados con 3DES
Implementación del código de cuatro 3DES
paquete com.imooc.security.des; import java.security.key; import java.security.secureerandom; import javax.crypto.cipher; import javax.crypto.keyGenerator; import javax.crypto.secretkey; import javax.crypto.secretkeyfactory; importar; importar; import javax.crypto.spec.desedekeyspec; import org.apache.commons.codec.binary.base64; clase pública imooc3des {private static string src = "Cakin24 Security 3Des"; public static void main (string [] args) {jdk3des (); } public static void jdk3des () {try {// Generar clave keyGenerator keyGenerator = keyGenerator.getInstance ("desede"); //KeyGenerator.init(168); keyGenerator.init (new SecureRandom ()); // Longitud predeterminada SecretKey SecretKey = KeyGenerator.GenerateKey (); byte [] byteskey = secretkey.getEncoded (); // conversión clave desedeKeySpec desedeKeySpec = new DeDedeKeySpec (byteskey); SecretKeyFactory Factory = SecretKeyFactory.getInstance ("desede"); Key ConverSecretKey = factory.GeneratesECret (desedeKeySpec); // cifrado cifrado cifrado = cipher.getInstance ("desede/ecb/pkcs5padding"); cipher.init (cipher.encrypt_mode, converssecretkey); byte [] resultado = cipher.dofinal (src.getBytes ()); System.out.println ("JDK 3Des CiCrypt:" + Base64.encodeBase64String (resultado)); // Decrypt cipher.init (cipher.decrypt_mode, converssecretkey); resultado = cipher.dofinal (resultado); System.out.println ("JDK 3Des Decrypt:" + nueva cadena (resultado)); } catch (Exception e) {E.PrintStackTrace (); }}}Cinco logros
JDK 3DES CIRRYPT: 6T7A/RNARDZSL+MTEZVBFXWNNZR0YJBW
JDK 3Des Decrypt: Cakin24 Security 3Des
Nota: org.apache.commons.codec.binary.Base64 se introduce aquí, y puede hacer clic aquí para descargar este sitio .
PD: Los amigos interesados en el cifrado y el descifrado también pueden referirse a las herramientas en línea de este sitio:
Herramientas de cifrado/descifrado de DES en línea:
http://tools.vevb.com/password/des_encode
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 en línea MD5:
http://tools.vevb.com/password/createmd5password
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 y algoritmos de datos de Java", "Resumen de los caracteres de Java y las habilidades de operación de cadenas", "Resumen de las habilidades de nodo de operación DOM Java" y "Resumen de las habilidades de operación de cache de Java" "
Espero que este artículo sea útil para la programación Java de todos.