J'essaye de crypter puis de décrypter des fichiers en utilisant un cryptage asymétrique. J'ai créé un certificat de test en utilisant makecert et l'ai installé dans mon magasin local local. À l'avenir, je devrai installer ce certificat sur plusieurs serveurs, c'est pourquoi je l'ai créé avec un drapeau "-pe", c'est-à-dire avec une clé privée exportable. Les certificats ont été créés et installés avec succès, je vois la note "Vous avez une clé privée qui correspond à ce certificat" en mmc.Exception "Bad Key" pour les certificats avec clé privée exportable
Maintenant j'essaye de crypter des données avec RSACryptoServiceProvider dans .NET 3.5. Et ça réussit. Mais quand j'essaye de le décrypter, je reçois l'exception "Bad key".
Si je crée le certificat sans l'option "-pe", le même code fonctionne bien pour le décryptage. Voici le code:
RSA rsaKey = (RSA)myCertificate.PrivateKey;
RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)rsaKey;
byte[] plainText = rsaCsp.Decrypt(encryptedText, true);
Aussi j'ai essayé une autre méthode, en utilisant l'espace de noms de System.Security.Cryptography.Pkcs:
EnvelopedCms envelope = new EnvelopedCms();
envelope.Decode(encryptedText);
envelope.Decrypt();
byte[] plainText = envelope.ContentInfo.Content;
Le résultat a été le même ... Quelqu'un peut-il aider ?
Merci monsieur, exactement ce qui me manquait – KodeKreachor
Cela a sauvé la journée .. merci pour la réponse et l'explication. – granadaCoder