RSACryptoServiceProvider.Decrypt 메서드

정의

이전에 암호화된 데이터의 암호를 해독합니다.Decrypts data that was previously encrypted.

오버로드

Decrypt(Byte[], Boolean)

RSA 알고리즘에 따라 데이터를 해독합니다.Decrypts data with the RSA algorithm.

Decrypt(Byte[], RSAEncryptionPadding)

지정한 패딩을 사용하여 이전에 RSA 알고리즘으로 암호화된 데이터의 암호를 해독합니다.Decrypts data that was previously encrypted with the RSA algorithm by using the specified padding.

Decrypt(Byte[], Boolean)

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()

매개 변수

rgb
Byte[]

해독할 데이터입니다.The data to be decrypted.

fOAEP
Boolean

OAEP 안쪽 여백(Microsoft Windows XP 이상을 실행하는 컴퓨터에서만 사용 가능)을 사용하여 직접 true를 수행하려면 RSA이고, 그러지 않으려면 PKCS#1 v1.5 안쪽 여백을 사용하려면 false입니다.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.

반환

Byte[]

해독된 데이터로, 암호화하기 전의 원래 일반 텍스트입니다.The decrypted data, which is the original plain text before encryption.

예외

CSP(암호화 서비스 공급자)를 가져올 수 없습니다.The cryptographic service provider (CSP) cannot be acquired.

-또는--or- fOAEP 매개 변수가 true이고 rgb 매개 변수의 길이가 KeySize보다 큽니다.The fOAEP parameter is true and the length of the rgb parameter is greater than KeySize.

-또는--or- fOAEP 매개 변수가 true 이고 OAEP가 지원되지 않습니다.The fOAEP parameter is true and OAEP is not supported.

-또는--or- 키가 암호화된 데이터와 일치하지 않습니다.The key does not match the encrypted data. 그러나 예외 표현이 정확하지 않을 수 있습니다.However, the exception wording may not be accurate. 예를 들어 이 명령을 처리할 만큼 충분한 스토리지 공간이 없습니다.라는 메시지가 표시될 수 있습니다.For example, it may say Not enough storage is available to process this command.

rgbnull인 경우rgb is null.

예제

다음 코드 예제에서는 암호화 한 데이터를 해독 합니다.The following code example encrypts and decrypts data.

이 예제에서는 ASCIIEncoding 클래스입니다; 그러나는 UnicodeEncoding 클래스는 큰 데이터 작업에 더 적합할 수 있습니다.This example uses the ASCIIEncoding class; however, the UnicodeEncoding class may be preferable in large data operations. 암호화 된 값을 Microsoft SQL Server nvarchar 데이터 형식으로 저장할 수 있습니다.The encrypted value can be saved as an nvarchar data type in Microsoft SQL Server.

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

설명

사용 하 여 Encrypt 이 메서드를 사용 하 여 암호 해독에 대 한 데이터를 암호화 합니다.Use Encrypt to encrypt data for decryption with this method.

보안

KeyContainerPermissionAccessEntryCollection
해독할 수 있는 권한입니다.for permission to decrypt. 보안 동작: Demand합니다.Security action: Demand. 연결 된 열거형: DecryptAssociated enumeration: Decrypt

추가 정보

Decrypt(Byte[], RSAEncryptionPadding)

지정한 패딩을 사용하여 이전에 RSA 알고리즘으로 암호화된 데이터의 암호를 해독합니다.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()

매개 변수

data
Byte[]

해독할 데이터입니다.The data to decrypt.

padding
RSAEncryptionPadding

패딩입니다.The padding.

반환

Byte[]

암호 해독된 데이터입니다.The decrypted data.

예외

datanull인 경우data is null.

-또는--or- paddingnull인 경우padding is null.

패딩 모드가 지원되지 않습니다.The padding mode is not supported.

설명

padding 여야 RSAEncryptionPadding.Pkcs1 또는 RSAEncryptionPadding.OaepSHA1합니다.padding must be either RSAEncryptionPadding.Pkcs1 or RSAEncryptionPadding.OaepSHA1.

적용 대상