java cryptography encryption tripledes

java - Diferencia entre DESede y TripleDES para cipher.getInstance()



cryptography encryption (1)

Estoy intentando que el cifrado TripleDES funcione en Java. Del artículo de Wikipedia en Keying Options , quiero usar la opción 1, donde All three keys are independent .

De los documentos de Cipher dice que debe ir a la guía de referencia aquí , pero aún no está claro para mí.

Estoy trabajando para obtener ejemplos en ejecución, y uso ambas líneas en diferentes proyectos:

Cipher c = Cipher.getInstance("DESede"); Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding");

Ambos compilan bien, entonces cual es la diferencia? ¿Debo usar uno sobre el otro? ¿Ambos funcionan para usar tres llaves separadas?


"TripleDES" es simplemente un alias para "DESede" en el proveedor de Sun JCE; ambos devuelven exactamente el mismo cifrado. "DESede" es el nombre estándar que debería funcionar en todas las plataformas Java, pero en la práctica, "TripleDES" probablemente también sea ampliamente compatible.

De acuerdo con esta página , la implementación de SunJCE Triple DES admite las opciones # 1 y # 2:

El tamaño de clave debe ser igual a 112 o 168.

Un tamaño de clave de 112 generará una clave Triple DES con 2 claves intermedias, y un tamaño de clave de 168 generará una clave Triple DES con 3 claves intermedias.

Siempre debe especificar el modo de operación y el relleno al crear una instancia de cifrado para que sus intentos sean claros. De lo contrario, la implementación es libre de hacer la elección, lo que puede ser confuso.