RSACryptoServiceProvider.Decrypt RSACryptoServiceProvider.Decrypt RSACryptoServiceProvider.Decrypt RSACryptoServiceProvider.Decrypt Method

Définition

Déchiffre les données précédemment chiffrées.Decrypts data that was previously encrypted.

Surcharges

Decrypt(Byte[], Boolean) Decrypt(Byte[], Boolean) Decrypt(Byte[], Boolean) Decrypt(Byte[], Boolean)

Déchiffre les données avec l'algorithme RSA.Decrypts data with the RSA algorithm.

Decrypt(Byte[], RSAEncryptionPadding) Decrypt(Byte[], RSAEncryptionPadding) Decrypt(Byte[], RSAEncryptionPadding) Decrypt(Byte[], RSAEncryptionPadding)

Déchiffre les données précédemment chiffrées avec l’algorithme RSA à l’aide du remplissage spécifié.Decrypts data that was previously encrypted with the RSA algorithm by using the specified padding.

Decrypt(Byte[], Boolean) Decrypt(Byte[], Boolean) Decrypt(Byte[], Boolean) Decrypt(Byte[], Boolean)

Déchiffre les données avec l'algorithme RSA.Decrypts data with the RSA algorithm.

public:
 cli::array <System::Byte> ^ Decrypt(cli::array <System::Byte> ^ rgb, bool fOAEP);
public byte[] Decrypt (byte[] rgb, bool fOAEP);
member this.Decrypt : byte[] * bool -> byte[]
Public Function Decrypt (rgb As Byte(), fOAEP As Boolean) As Byte()

Paramètres

rgb
Byte[]

Données à déchiffrer.The data to be decrypted.

fOAEP
Boolean Boolean Boolean Boolean

true pour procéder à un déchiffrement RSA direct à l'aide du remplissage OAEP (uniquement disponible sur un ordinateur exécutant Microsoft XP ou ultérieur) ; sinon, false pour utiliser le remplissage PKCS#1 v1.5.true to perform direct RSA decryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); otherwise, false to use PKCS#1 v1.5 padding.

Retours

Byte[]

Données déchiffrées qui correspondent au texte brut d'origine avant le chiffrement.The decrypted data, which is the original plain text before encryption.

Exceptions

Le fournisseur de services de chiffrement ne peut pas être acquis.The cryptographic service provider (CSP) cannot be acquired.

- ou --or- Le paramètre fOAEP est true et la longueur du paramètre rgb est supérieure à KeySize.The fOAEP parameter is true and the length of the rgb parameter is greater than KeySize.

- ou --or- Le paramètre fOAEP est true et OAEP n'est pas pris en charge.The fOAEP parameter is true and OAEP is not supported.

- ou --or- La clé ne correspond pas aux données chiffrées.The key does not match the encrypted data. Toutefois, le libellé des exceptions peut ne pas être précis.However, the exception wording may not be accurate. Par exemple, elle peut indiquer Espace insuffisant pour traiter cette commande.For example, it may say Not enough storage is available to process this command.

Exemples

L’exemple de code suivant chiffre et déchiffre les données.The following code example encrypts and decrypts data.

Cet exemple utilise la ASCIIEncoding classe ; Toutefois, la UnicodeEncoding classe peut être préférable dans les opérations de données volumineuses.This example uses the ASCIIEncoding class; however, the UnicodeEncoding class may be preferable in large data operations. La valeur chiffrée peut être enregistrée en tant nvarchar que type de données dans Microsoft SQL Server 2005.The encrypted value can be saved as an nvarchar data type in Microsoft SQL Server 2005.

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Text;
int main()
{
   try
   {
      
      //Create a UnicodeEncoder to convert between byte array and string.
      ASCIIEncoding^ ByteConverter = gcnew ASCIIEncoding;
      String^ dataString = "Data to Encrypt";
      
      //Create byte arrays to hold original, encrypted, and decrypted data.
      array<Byte>^dataToEncrypt = ByteConverter->GetBytes( dataString );
      array<Byte>^encryptedData;
      array<Byte>^decryptedData;
      
      //Create a new instance of the RSACryptoServiceProvider class 
      // and automatically create a new key-pair.
      RSACryptoServiceProvider^ RSAalg = gcnew RSACryptoServiceProvider;
      
      //Display the origianl data to the console.
      Console::WriteLine( "Original Data: {0}", dataString );
      
      //Encrypt the byte array and specify no OAEP padding.  
      //OAEP padding is only available on Microsoft Windows XP or
      //later.  
      encryptedData = RSAalg->Encrypt( dataToEncrypt, false );
      
      //Display the encrypted data to the console. 
      Console::WriteLine( "Encrypted Data: {0}", ByteConverter->GetString( encryptedData ) );
      
      //Pass the data to ENCRYPT and boolean flag specifying 
      //no OAEP padding.
      decryptedData = RSAalg->Decrypt( encryptedData, false );
      
      //Display the decrypted plaintext to the console. 
      Console::WriteLine( "Decrypted plaintext: {0}", ByteConverter->GetString( decryptedData ) );
   }
   catch ( CryptographicException^ e ) 
   {
      
      //Catch this exception in case the encryption did
      //not succeed.
      Console::WriteLine( e->Message );
   }

}

using System;
using System.Security.Cryptography;
using System.Text;

class RSACSPSample
{
    static void Main()
    {
        try
        {
            //Create a UnicodeEncoder to convert between byte array and string.
            ASCIIEncoding ByteConverter = new ASCIIEncoding();

            string dataString = "Data to Encrypt";

            //Create byte arrays to hold original, encrypted, and decrypted data.
            byte[] dataToEncrypt = ByteConverter.GetBytes(dataString);
            byte[] encryptedData;
            byte[] decryptedData;

            //Create a new instance of the RSACryptoServiceProvider class 
            // and automatically create a new key-pair.
            RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();

            //Display the origianl data to the console.
            Console.WriteLine("Original Data: {0}", dataString);

            //Encrypt the byte array and specify no OAEP padding.  
            //OAEP padding is only available on Microsoft Windows XP or
            //later.  
            encryptedData = RSAalg.Encrypt(dataToEncrypt, false);

            //Display the encrypted data to the console. 
            Console.WriteLine("Encrypted Data: {0}", ByteConverter.GetString(encryptedData));

            //Pass the data to ENCRYPT and boolean flag specifying 
            //no OAEP padding.
            decryptedData = RSAalg.Decrypt(encryptedData, false);

            //Display the decrypted plaintext to the console. 
            Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData));
        }
        catch(CryptographicException e)
        {
            //Catch this exception in case the encryption did
            //not succeed.
            Console.WriteLine(e.Message);

        }
    }
}
Imports System.Security.Cryptography
Imports System.Text

Module RSACSPExample

    Sub Main()
        Try
            'Create a UnicodeEncoder to convert between byte array and string.
            Dim ByteConverter As New ASCIIEncoding

            Dim dataString As String = "Data to Encrypt"

            'Create byte arrays to hold original, encrypted, and decrypted data.
            Dim dataToEncrypt As Byte() = ByteConverter.GetBytes(dataString)
            Dim encryptedData() As Byte
            Dim decryptedData() As Byte

            'Create a new instance of the RSACryptoServiceProvider class 
            ' and automatically create a new key-pair.
            Dim RSAalg As New RSACryptoServiceProvider

            'Display the origianl data to the console.
            Console.WriteLine("Original Data: {0}", dataString)

            'Encrypt the byte array and specify no OAEP padding.  
            'OAEP padding is only available on Microsoft Windows XP or
            'later.  
            encryptedData = RSAalg.Encrypt(dataToEncrypt, False)

            'Display the encrypted data to the console. 
            Console.WriteLine("Encrypted Data: {0}", ByteConverter.GetString(encryptedData))

            'Pass the data to ENCRYPT and boolean flag specifying 
            'no OAEP padding.
            decryptedData = RSAalg.Decrypt(encryptedData, False)

            'Display the decrypted plaintext to the console. 
            Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData))
        Catch e As CryptographicException
            'Catch this exception in case the encryption did
            'not succeed.
            Console.WriteLine(e.Message)
        End Try
    End Sub 

End Module

Remarques

Utilisez Encrypt pour chiffrer les données pour le déchiffrement avec cette méthode.Use Encrypt to encrypt data for decryption with this method.

Sécurité

KeyContainerPermissionAccessEntryCollection
pour obtenir l’autorisation de déchiffrer.for permission to decrypt. Action de sécurité Demand:.Security action: Demand. Énumération associée:DecryptAssociated enumeration: Decrypt

Voir aussi

Decrypt(Byte[], RSAEncryptionPadding) Decrypt(Byte[], RSAEncryptionPadding) Decrypt(Byte[], RSAEncryptionPadding) Decrypt(Byte[], RSAEncryptionPadding)

Déchiffre les données précédemment chiffrées avec l’algorithme RSA à l’aide du remplissage spécifié.Decrypts data that was previously encrypted with the RSA algorithm by using the specified padding.

public:
 override cli::array <System::Byte> ^ Decrypt(cli::array <System::Byte> ^ data, System::Security::Cryptography::RSAEncryptionPadding ^ padding);
public override byte[] Decrypt (byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding);
override this.Decrypt : byte[] * System.Security.Cryptography.RSAEncryptionPadding -> byte[]
Public Overrides Function Decrypt (data As Byte(), padding As RSAEncryptionPadding) As Byte()

Paramètres

data
Byte[]

Données à déchiffrer.The data to decrypt.

Retours

Byte[]

Données déchiffrées.The decrypted data.

Exceptions

data a la valeur null.data is null.

- ou --or- padding a la valeur null.padding is null.

Le mode de remplissage n’est pas pris en charge.The padding mode is not supported.

Remarques

paddingdoit avoir la RSAEncryptionPadding.Pkcs1 valeur RSAEncryptionPadding.OaepSHA1ou.padding must be either RSAEncryptionPadding.Pkcs1 or RSAEncryptionPadding.OaepSHA1.

S’applique à