Exception "Le remplissage n'est pas valide et ne peut pas être supprimé" dans le programme de chiffrement et de déchiffrement C# Rijndael
En cryptographie, une exception « Le remplissage n'est pas valide et ne peut pas être supprimé » se produit lors de la tentative de déchiffrement de données cryptées à l'aide de l'algorithme de Rijndael. Cette exception indique que le remplissage utilisé lors du chiffrement ne correspond pas à ce qui est attendu par l'algorithme de déchiffrement.
Comprendre le rembourrage à Rijndael
Rijndael (également connu sous le nom d'AES) fonctionne sur des blocs de données de taille fixe. Lorsque la taille des données chiffrées n'est pas divisible par la taille du bloc, un remplissage est utilisé pour remplir l'espace restant. Ce remplissage garantit que le texte chiffré est un bloc valide et complet.
Processus de décryptage
Pendant le décryptage, l'algorithme tente de supprimer le remplissage du texte chiffré. Cependant, si le remplissage ne correspond pas à ce qui est attendu, une exception « Le remplissage n'est pas valide et ne peut pas être supprimé » est levée. Cela signifie que les algorithmes de chiffrement et de déchiffrement utilisent des schémas de remplissage différents.
Solution : Spécifier explicitement le remplissage
Pour résoudre ce problème, le schéma de remplissage pour le cryptage et le déchiffrement doit être explicitement spécifié. Cela peut être fait en utilisant le code suivant :
<code class="language-csharp">// 加密 symmetricAlgorithm.Padding = PaddingMode.PKCS7; // 解密 EncryptedXml exml = new EncryptedXml(); exml.Padding = PaddingMode.PKCS7;</code>
Rembourrage PKCS#7
Il est recommandé d'utiliser le remplissage PKCS#7, sauf s'il existe une raison spécifique d'utiliser un schéma de remplissage différent. PKCS#7 (également connu sous le nom d'OAEP (Optimal Aometric Encryption Padding)) est un algorithme de remplissage largement pris en charge et sécurisé qui garantit l'intégrité des données cryptées.
Autres notes
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!