RSACryptoServiceProvider.Decrypt Metod

Definition

Dekrypterar data som tidigare krypterats.

Överlagringar

Name Description
Decrypt(Byte[], Boolean)
Föråldrad.

Dekrypterar data med algoritmen RSA .

Decrypt(Byte[], RSAEncryptionPadding)

Dekrypterar data som tidigare krypterats med algoritmen RSA med hjälp av den angivna utfyllnaden.

Decrypt(Byte[], Boolean)

Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs

Varning

RSACryptoServiceProvider.Encrypt and RSACryptoServiceProvider.Decrypt methods that take a Boolean are obsolete. Use the overload that accepts RSAEncryptionPadding instead.

Dekrypterar data med algoritmen RSA .

public:
 cli::array <System::Byte> ^ Decrypt(cli::array <System::Byte> ^ rgb, bool fOAEP);
public byte[] Decrypt(byte[] rgb, bool fOAEP);
[System.Obsolete("RSACryptoServiceProvider.Encrypt and RSACryptoServiceProvider.Decrypt methods that take a Boolean are obsolete. Use the overload that accepts RSAEncryptionPadding instead.", DiagnosticId="SYSLIB0064", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public byte[] Decrypt(byte[] rgb, bool fOAEP);
override this.Decrypt : byte[] * bool -> byte[]
[<System.Obsolete("RSACryptoServiceProvider.Encrypt and RSACryptoServiceProvider.Decrypt methods that take a Boolean are obsolete. Use the overload that accepts RSAEncryptionPadding instead.", DiagnosticId="SYSLIB0064", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
override this.Decrypt : byte[] * bool -> byte[]
member this.Decrypt : byte[] * bool -> byte[]
Public Function Decrypt (rgb As Byte(), fOAEP As Boolean) As Byte()

Parametrar

rgb
Byte[]

De data som ska dekrypteras.

fOAEP
Boolean

true för att utföra direkt RSA dekryptering med OAEP-utfyllnad, annars false för att använda PKCS#1 v1.5-utfyllnad.

Returer

Byte[]

De dekrypterade data, som är den ursprungliga oformaterade texten före kryptering.

Attribut

Undantag

Det går inte att hämta den kryptografiska tjänstleverantören (CSP).

-eller-

Parametern fOAEP är true och längden på parametern rgb är större än KeySize.

-eller-

Nyckeln matchar inte krypterade data. Undantagsformuleringen kanske dock inte är korrekt. Det kan till exempel stå Not enough storage is available to process this command.

rgb är null.

Exempel

I följande kodexempel krypteras och dekrypteras data.

I det ASCIIEncoding här exemplet används klassen, men klassen UnicodeEncoding kan vara att föredra i stora dataåtgärder. Det krypterade värdet kan sparas som en nvarchar datatyp i Microsoft SQL Server.

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

Kommentarer

Använd Encrypt för att kryptera data för dekryptering med den här metoden.

Se även

Gäller för

Decrypt(Byte[], RSAEncryptionPadding)

Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs
Källa:
RSACryptoServiceProvider.Unix.cs

Dekrypterar data som tidigare krypterats med algoritmen RSA med hjälp av den angivna utfyllnaden.

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

Parametrar

data
Byte[]

Data som ska dekrypteras.

padding
RSAEncryptionPadding

Utfyllnad.

Returer

Byte[]

De dekrypterade data.

Undantag

data är null.

-eller-

padding är null.

Utfyllnadsläget stöds inte.

Kommentarer

padding måste vara antingen RSAEncryptionPadding.Pkcs1 eller RSAEncryptionPadding.OaepSHA1.

Gäller för