encryption - velocidad - ¿Qué algoritmo de cifrado es mejor para cadenas pequeñas?
wpa aes (3)
AES utiliza un tamaño de bloque de 16 bytes; es admirablemente adecuado para sus necesidades si su límite de 10-15 caracteres es firme. El esquema de relleno PKCS # 11 (IIRC) agregaría 6-1 bytes a los datos y generaría una salida de exactamente 16 bytes. Realmente no necesita usar un modo de cifrado (como CBC) ya que solo está cifrando un bloque. Existe un problema sobre cómo manejar las claves: siempre existe un problema sobre cómo manejar las claves de cifrado.
Si debe ir con longitudes de datos más cortas para cadenas más cortas, entonces probablemente deba considerar AES en el modo CTR. Esto utiliza la clave y un contador para generar un flujo de bytes que está XOR con los bytes de la cadena. Dejaría su cadena cifrada en la misma longitud que la cadena de texto plano de entrada.
Será difícil encontrar un algoritmo de compresión de propósito general que reduzca de manera confiable la longitud de tales cadenas cortas, por lo que comprimir antes de encriptar es apenas una opción.
Tengo una cadena de 10-15 caracteres y quiero cifrar esa cadena. El problema es que quiero obtener una cadena cifrada lo más corta posible. También querré descifrar esa cadena de nuevo a su cadena original.
¿Qué algoritmo de cifrado se ajusta mejor a esta situación?
Si el objetivo principal es acortar, buscaría una biblioteca de compresión que permita un diccionario fijo construido en un corpus de cadenas comunes.
Personalmente no tengo experiencia con eso, pero apuesto a que LZMA puede hacer eso.
Si es solo una cadena corta, puede usar un teclado de una sola vez que es matemáticamente el secreto perfecto.
http://en.wikipedia.org/wiki/One-time_pad
Solo asegúrate de no usar la tecla más de una vez.