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 encriptación (como CBC) ya que solo está encriptando un bloque. Existe un problema con la forma en que manejaría las claves; siempre hay un problema de cómo maneja 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 modo CTR. Utiliza la clave y un contador para generar una secuencia de bytes que está XOR con los bytes de la cadena. Dejaría su cadena encriptada en la misma longitud que la cadena de entrada de texto sin formato.
Tendrá dificultades para 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.
¿Es un requisito que el cifrado sea "difícil" (en este caso solo quiero decir no trivial) para crackear, o es solo para acortar las cadenas? –
acortando la cuerda, y "más difícil de romper" es solo una bonificación –