2009-10-02 6 views
0

Je veux juste confirmer mes pensées à propos de CryptographicException sur le déchiffrement. J'ai quelques tests, exactement celui avec une mauvaise passphraze. Ce test jetteCryptographicException sur Decryption

System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed. 

Je regardais ce qui causerait cela. Cependant, je n'ai rien trouvé. Cela m'amène à la conclusion qu'une fois que j'utilise un mauvais mot de passe pour le déchiffrement, j'ai cette erreur.

Ai-je raison?

Merci pour vos commentaires. Cheers, X.

Répondre

2

Lorsque vous utilisez le remplissage et que la clé et IV ne sont pas corrects, le décryptage échouera au moment où le rembourrage doit être retiré. C'est parce que dans toute probabilité les octets matelassés ne sont pas conformes au PaddingMode sélectionné. Il y a une petite chance que cela se produise et que le déchiffrement continue sans erreur mais le résultat serait brouillé. Toutefois, si vous utilisez PaddingMode.None, vous pourrez toujours déchiffrer les données sans erreur (à condition que la longueur du texte en clair soit un multiple de la taille du bloc), mais les données seront à nouveau tronquées. Pour conclure: vous ne pouvez pas compter sur le fait que si une mauvaise clé est utilisée, vous obtiendrez une exception. Vous devez vérifier les données résultantes.

+0

merci pour l'explication. Je pense que je peux compter sur le fait qu'une fois que j'attraperai cette erreur pendant le décryptage, ce sera plus probable parce que la mauvaise phrase a été utilisée. Donc je peux le laisser sans m'inquiéter de ce que st est utilisé ou mal utilisé. –

Questions connexes