RSACryptoServiceProvider.Decrypt Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Расшифровывает данные, которые ранее были зашифрованы.
Перегрузки
| Имя | Описание |
|---|---|
| Decrypt(Byte[], Boolean) |
Устаревшие..
Расшифровывает данные с помощью алгоритма RSA . |
| Decrypt(Byte[], RSAEncryptionPadding) |
Расшифровывает данные, которые ранее были зашифрованы с RSA помощью алгоритма с помощью указанного заполнения. |
Decrypt(Byte[], Boolean)
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
Внимание
RSACryptoServiceProvider.Encrypt and RSACryptoServiceProvider.Decrypt methods that take a Boolean are obsolete. Use the overload that accepts RSAEncryptionPadding instead.
Расшифровывает данные с помощью алгоритма 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()
Параметры
- rgb
- Byte[]
Расшифрованные данные.
- fOAEP
- Boolean
true для выполнения прямого RSA расшифровки с помощью OAEP-заполнения; в противном случае false используется заполнение PKCS#1 версии 1.5.
Возвращаемое значение
Расшифрованные данные, которые являются исходным текстом перед шифрованием.
- Атрибуты
Исключения
Невозможно получить поставщик криптографических служб (CSP).
–или–
Параметр fOAEP равен true и длина rgb параметра больше KeySize.
–или–
Ключ не соответствует зашифрованным данным. Однако формулировка исключений может быть не точной. Например, это может сказать Not enough storage is available to process this command.
rgb равно null.
Примеры
В следующем примере кода шифруются и расшифровываются данные.
В этом примере используется ASCIIEncoding класс. UnicodeEncoding Однако класс может быть предпочтительнее в операциях с большими данными. Зашифрованное значение можно сохранить в виде типа данных nvarchar в 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
Комментарии
Используется Encrypt для шифрования данных для расшифровки с помощью этого метода.
См. также раздел
Применяется к
Decrypt(Byte[], RSAEncryptionPadding)
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
- Исходный код:
- RSACryptoServiceProvider.Unix.cs
Расшифровывает данные, которые ранее были зашифрованы с RSA помощью алгоритма с помощью указанного заполнения.
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[]
Данные для расшифровки.
- padding
- RSAEncryptionPadding
Заполнение.
Возвращаемое значение
Расшифрованные данные.
Исключения
Режим заполнения не поддерживается.
Комментарии
padding должен быть либо RSAEncryptionPadding.Pkcs1 , либо RSAEncryptionPadding.OaepSHA1.