Auteur : | : | Galdon |
Pays | : | France |
Date | : | lundi 17 mars 2014, 12:07 |
Commentaire | : | J'ai compris d'où vient le problème. Comme je l'ai écrit, le chiffrement par bloc découpe le message en blocs de taille fixe. Mais la taille du message n'est pas forcément un multiple de la taille du bloc, autrement dit la découpe ne tombe pas forcément pile-poil, donc on se retrouve potentiellement avec le dernier bloc partiellement rempli. Or, certains modes opératoires (comme cbc et ecb) ne peuvent travailler qu'avec des blocs pleins, alors ils vont remplir arbitrairement le dernier bloc. On appelle ça le padding (ou remplissage en français, on dit aussi bourrage mais c'est moins classe...). En général le remplissage se fait avec l'octet 0x00, qui correspond au caractère NUL. Et ce sont ces fameux octets de padding qu'on retrouve au décryptage à la fin du message. Pour résoudre ce "bug" qui n'en n'est pas un, il suffit d'utiliser la fonction J'ai corrigé le code PHP de la classe Chiffrement dans le tuto. |