Udostępnij za pośrednictwem


RSACryptoServiceProvider.Encrypt Metoda

Definicja

Szyfruje dane za pomocą algorytmu RSA .

Przeciążenia

Nazwa Opis
Encrypt(Byte[], Boolean)
Przestarzałe.

Szyfruje dane za pomocą algorytmu RSA .

Encrypt(Byte[], RSAEncryptionPadding)

Szyfruje dane za pomocą algorytmu RSA przy użyciu określonego wypełnienia.

Encrypt(Byte[], Boolean)

Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs

Uwaga

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

Szyfruje dane za pomocą algorytmu RSA .

public:
 cli::array <System::Byte> ^ Encrypt(cli::array <System::Byte> ^ rgb, bool fOAEP);
public byte[] Encrypt(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[] Encrypt(byte[] rgb, bool fOAEP);
override this.Encrypt : 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.Encrypt : byte[] * bool -> byte[]
member this.Encrypt : byte[] * bool -> byte[]
Public Function Encrypt (rgb As Byte(), fOAEP As Boolean) As Byte()

Parametry

rgb
Byte[]

Dane do zaszyfrowania.

fOAEP
Boolean

true do wykonywania bezpośrednich RSA szyfrowania przy użyciu dopełnienia OAEP (dostępne tylko na komputerze z systemem Windows XP lub nowszym); w przeciwnym razie false do korzystania z dopełnienia PKCS#1 w wersji 1.5.

Zwraca

Byte[]

Zaszyfrowane dane.

Atrybuty

Wyjątki

Nie można uzyskać dostawcy usług kryptograficznych (CSP).

— lub —

Długość parametru rgb jest większa niż maksymalna dozwolona długość.

Parametr rgb ma wartość null.

Przykłady

Poniższy przykład kodu inicjuje RSACryptoServiceProvider obiekt do wartości klucza publicznego (wysyłanego przez inną firmę), generuje klucz sesji przy użyciu algorytmu Aes , a następnie szyfruje klucz sesji przy użyciu RSACryptoServiceProvider obiektu . Korzystając z tego schematu, klucz sesji można wysłać z powrotem do właściciela prywatnego klucza RSA, a obie strony mogą użyć klucza sesji do wymiany zaszyfrowanych danych.

using System;
using System.Security.Cryptography;

class RSACSPSample
{

    static void Main()
    {
        try
        {		//initialze the byte arrays to the public key information.
            byte[] PublicKey = {214,46,220,83,160,73,40,39,201,155,19,202,3,11,191,178,56,
                                   74,90,36,248,103,18,144,170,163,145,87,54,61,34,220,222,
                                   207,137,149,173,14,92,120,206,222,158,28,40,24,30,16,175,
                                   108,128,35,230,118,40,121,113,125,216,130,11,24,90,48,194,
                                   240,105,44,76,34,57,249,228,125,80,38,9,136,29,117,207,139,
                                   168,181,85,137,126,10,126,242,120,247,121,8,100,12,201,171,
                                   38,226,193,180,190,117,177,87,143,242,213,11,44,180,113,93,
                                   106,99,179,68,175,211,164,116,64,148,226,254,172,147};

            byte[] Exponent = {1,0,1};
      
            //Values to store encrypted symmetric keys.
            byte[] EncryptedSymmetricKey;
            byte[] EncryptedSymmetricIV;

            //Create a new instance of RSACryptoServiceProvider.
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

            //Create a new instance of RSAParameters.
            RSAParameters RSAKeyInfo = new RSAParameters();

            //Set RSAKeyInfo to the public key values. 
            RSAKeyInfo.Modulus = PublicKey;
            RSAKeyInfo.Exponent = Exponent;

            //Import key parameters into RSA.
            RSA.ImportParameters(RSAKeyInfo);

            //Create a new instance of the Aes class.
            Aes aes = Aes.Create();

            //Encrypt the symmetric key and IV.
            EncryptedSymmetricKey = RSA.Encrypt(aes.Key, false);
            EncryptedSymmetricIV = RSA.Encrypt(aes.IV, false);

            Console.WriteLine("Aes Key and IV have been encrypted with RSACryptoServiceProvider."); 
        }
        //Catch and display a CryptographicException  
        //to the console.
        catch(CryptographicException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.Security.Cryptography

Class RSACSPSample

    Shared Sub Main()
        Try
            'initialze the byte arrays to the public key information.
            Dim PublicKey As Byte() = {214, 46, 220, 83, 160, 73, 40, 39, 201, 155, 19, 202, 3, 11, 191, 178, 56, 74, 90, 36, 248, 103, 18, 144, 170, 163, 145, 87, 54, 61, 34, 220, 222, 207, 137, 149, 173, 14, 92, 120, 206, 222, 158, 28, 40, 24, 30, 16, 175, 108, 128, 35, 230, 118, 40, 121, 113, 125, 216, 130, 11, 24, 90, 48, 194, 240, 105, 44, 76, 34, 57, 249, 228, 125, 80, 38, 9, 136, 29, 117, 207, 139, 168, 181, 85, 137, 126, 10, 126, 242, 120, 247, 121, 8, 100, 12, 201, 171, 38, 226, 193, 180, 190, 117, 177, 87, 143, 242, 213, 11, 44, 180, 113, 93, 106, 99, 179, 68, 175, 211, 164, 116, 64, 148, 226, 254, 172, 147}

            Dim Exponent As Byte() = {1, 0, 1}

            'Values to store encrypted symmetric keys.
            Dim EncryptedSymmetricKey() As Byte
            Dim EncryptedSymmetricIV() As Byte

            'Create a new instance of RSACryptoServiceProvider.
            Dim RSA As New RSACryptoServiceProvider()

            'Create a new instance of RSAParameters.
            Dim RSAKeyInfo As New RSAParameters()

            'Set RSAKeyInfo to the public key values. 
            RSAKeyInfo.Modulus = PublicKey
            RSAKeyInfo.Exponent = Exponent

            'Import key parameters into RSA.
            RSA.ImportParameters(RSAKeyInfo)

            'Create a new instance of the Aes class.
            Dim aes As Aes = Aes.Create()

            'Encrypt the symmetric key and IV.
            EncryptedSymmetricKey = RSA.Encrypt(aes.Key, False)
            EncryptedSymmetricIV = RSA.Encrypt(aes.IV, False)

            Console.WriteLine("Aes Key and IV have been encrypted with RSA.")

            'Catch and display a CryptographicException  
            'to the console.
        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        End Try
    End Sub
End Class

Uwagi

W poniższej tabeli opisano dopełnienie obsługiwane przez różne wersje Microsoft Windows i maksymalną długość rgb dozwolone przez różne kombinacje systemów operacyjnych i dopełnienie.

Dopełnienie Maksymalna długość parametru rgb
Wypełnienie OAEP (PKCS#1 v2) Rozmiar modulu -2 -2*hLen, gdzie hLen jest rozmiarem skrótu.
Szyfrowanie bezpośrednie (PKCS#1 w wersji 1.5) Rozmiar modulo - 11. (11 bajtów jest minimalną możliwą dopełnienie).

Użyj Decrypt polecenia , aby odszyfrować wyniki tej metody.

Zobacz też

Dotyczy

Encrypt(Byte[], RSAEncryptionPadding)

Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs
Źródło:
RSACryptoServiceProvider.Unix.cs

Szyfruje dane za pomocą algorytmu RSA przy użyciu określonego wypełnienia.

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

Parametry

data
Byte[]

Dane do zaszyfrowania.

padding
RSAEncryptionPadding

Dopełnienie.

Zwraca

Byte[]

Zaszyfrowane dane.

Wyjątki

Parametr data ma wartość null.

— lub —

Parametr padding ma wartość null.

Tryb dopełnienia nie jest obsługiwany.

Uwagi

padding musi mieć wartość RSAEncryptionPadding.Pkcs1 lub RSAEncryptionPadding.OaepSHA1.

Dotyczy