used they round keys ever best are algorithms algorithm encryption cryptography

algorithm - they - Longitud de la cadena cifrada



best encryption algorithm ever (3)

Necesito crear una columna de base de datos que almacene una cadena encriptada usando Triple DES. ¿Cómo determino la longitud de la columna de cadena cifrada?

(Las respuestas para algoritmos que no sean Triple DES también son bienvenidas).


El uso de Triple DES no cambia la longitud de la cadena, pero se redondeará al siguiente límite de 64 bits. Si tiene la intención de "mostrarlo", tendrá que codificarlo (como en Base64) .

En cuanto a otros algoritmos, es difícil de responder ya que hay muchos. Los sistemas de cifrado siempre rellenarán la entrada para que coincida con el tamaño de bloque, mientras que muchos sistemas de cifrado de flujo no lo harán.


Triple DES utiliza tres claves DES de 56 bits, dando claves de 168 bit. Su tamaño de bloque es de 64 bits .


Los cifrados de bloques como DES, 3DES y AES solo pueden operar en bloques de bytes. DES y 3DES operan en bloques de 8 bytes y AES en bloques de 16 bytes.

Para manejar esto, generalmente aplica un relleno reversible a su texto plano antes de encriptarlo. En su mayoría, siempre será "PKCS" -padding (también llamado PKCS5- o PKCS7-padding).

PKCS-padding agrega al menos un byte tal que el texto acolchado tiene una longitud divisible con la longitud del bloque (8 bytes para 3DES). El valor de los padding-bytes es el número de bytes agregados. Fx. ABCDEF se rellena en ABCDEF0505050505 y 0011223344556677 se rellena en 0011223344566770808080808080808. Tenga en cuenta que esto es fácil de eliminar: simplemente observe el byte final de los bytes acolchados, verifique que esté entre 1 y la longitud del bloque, y elimine esa cantidad de bytes desde el final (verificando que cada byte eliminado tiene el valor correcto).

Finalmente, para responder a su pregunta: suponiendo que esté utilizando 3DES con cifrado CBC y PKCS-padding, que probablemente sea, el cifrado de una cadena de longitud n tendrá longitud:

n + 8 - (n % 8)