AES utilise une taille de bloc de 16 octets; il est admirablement adapté à vos besoins si votre limite de 10-15 caractères est ferme. Le schéma de remplissage PKCS # 11 (IIRC) ajoute 6-1 octets aux données et génère une sortie de 16 octets exactement. Vous n'avez pas vraiment besoin d'utiliser un mode de chiffrement (tel que CBC) puisque vous ne cryptez qu'un seul bloc. La façon dont vous manipulez les clés pose un problème: la gestion des clés de chiffrement pose toujours un problème.
Si vous devez utiliser des longueurs de données plus courtes pour des chaînes plus courtes, vous devez probablement considérer AES en mode CTR. Cela utilise la clé et un compteur pour générer un flux d'octets qui est XOR avec les octets de la chaîne. Cela laisserait votre chaîne cryptée à la même longueur que la chaîne de texte en clair d'entrée.
Vous aurez du mal à trouver un algorithme de compression à usage général qui réduit de manière fiable la longueur de ces chaînes courtes, donc la compression avant le cryptage est à peine une option.
Est-ce une exigence que le chiffrement soit "dur" (dans ce cas, je veux dire juste non-trivial) à craquer, ou est-ce seulement dans le but de raccourcir les chaînes? –
raccourcir la chaîne, et "plus difficile à casser" est juste un bonus –