"Je n'y connais strictement rien à la cryptographie je t'avouerais que je comprends son code de loin. Mais mes fonctions étant séparées elles créent déjà deux objets key identiques mais "réinitialisés". "
Mais si tu essaye le code qui est donné sur ce site, tel quel, est-ce qu'il fonctionne ? Si oui, transforme le étape par étape, le plus progressivement possible, en ton code pour voir ou est-ce que ça arrête de fonctionner.
Mais je relis ton premier message et j'ai l'impression de comprendre que ce que tu dis c'est que tu as juste sérialiser tes données, sans les crypter ? Si c'est le cas, c'est absolument normal que ton texte apparaisse en clair. Globalement, dans un paradigme OO, chaque objet, lorsqu'il est sérialisé, écrit les informations dont il a besoin puis il demande à chacun de ses membres qui sont sérialisable de se sérialiser tout seul comme des grand etc. Et pour une chaînes de caractère (qui contient déjà des données binaire donc), le plus simple est juste d'écrire son propre texte (probablement précédé de sa longueur). La sérialisation ne peut en aucun cas être une "protection" pour les donnée (vu qu'il suffit de les désérialiser pour les relire).
Dans le cas du cryptage, ce qui me surprend vraiment, c'est le fait que tu n'utilise pas de clef pour "définir" le cryptage. Tu peux regarder par exemple comment on fait ce genre de chose en Caml, avec le même genre de bibliothèque de cryptage de très haut niveau :
http://svn.quare.fr/viewvc/projets/trunk/passkeeper/passkeeper.ml?revision=263&view=markup
Où je commence par initialiser un générateur, soit pour crypter, soit pour décrypter (avec les même paramètres), puis il est appliqué au flux. Et, si je donne une mauvaise clef pour décrypter, ou d'autre paramètre au cryptosystème, j'ai, pareil, un message d'erreur du genre l'en tête est invalide.