Freigeben über


RSACryptoServiceProvider.Encrypt Methode

Definition

Verschlüsselt Daten mit dem RSA Algorithmus.

Überlädt

Name Beschreibung
Encrypt(Byte[], Boolean)
Veraltet.

Verschlüsselt Daten mit dem RSA Algorithmus.

Encrypt(Byte[], RSAEncryptionPadding)

Verschlüsselt Daten mit dem Algorithmus mithilfe des RSA angegebenen Abstands.

Encrypt(Byte[], Boolean)

Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs

Achtung

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

Verschlüsselt Daten mit dem RSA Algorithmus.

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

Parameter

rgb
Byte[]

Die zu verschlüsselnden Daten.

fOAEP
Boolean

true, um die direkte RSA-Verschlüsselung mit OAEP-Abstand durchzuführen (nur auf einem Computer verfügbar, auf dem Windows XP oder höher ausgeführt wird); andernfalls false für die Verwendung von PKCS#1 v1.5-Abstand.

Gibt zurück

Byte[]

Die verschlüsselten Daten.

Attribute

Ausnahmen

Der kryptografische Dienstanbieter (CSP) kann nicht erworben werden.

- oder -

Die Länge des rgb Parameters ist größer als die maximal zulässige Länge.

rgb ist null.

Beispiele

Im folgenden Codebeispiel wird ein RSACryptoServiceProvider Objekt mit dem Wert eines öffentlichen Schlüssels (gesendet von einer anderen Partei) initialisiert, ein Sitzungsschlüssel mithilfe des Aes Algorithmus generiert und dann der Sitzungsschlüssel mithilfe des RSACryptoServiceProvider Objekts verschlüsselt. Mithilfe dieses Schemas könnte der Sitzungsschlüssel an den Besitzer des privaten RSA-Schlüssels zurückgesendet werden, und die beiden Parteien könnten den Sitzungsschlüssel verwenden, um verschlüsselte Daten auszutauschen.

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

Hinweise

In der folgenden Tabelle werden die von verschiedenen Versionen von Microsoft Windows unterstützten Abstände und die maximale Länge von rgb beschrieben, die von den verschiedenen Kombinationen von Betriebssystemen und Abstand zulässig sind.

Polsterung Maximale Länge des RGB-Parameters
OAEP-Abstand (PKCS#1 v2) Modulusgröße -2 -2*hLen, wobei hLen die Größe des Hashs ist.
Direct Encryption (PKCS#1 v1.5) Modulgröße - 11. (11 Byte ist der minimale Abstand möglich.)

Verwenden Sie Decrypt diese Methode, um die Ergebnisse dieser Methode zu entschlüsseln.

Weitere Informationen

Gilt für:

Encrypt(Byte[], RSAEncryptionPadding)

Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs
Quelle:
RSACryptoServiceProvider.Unix.cs

Verschlüsselt Daten mit dem Algorithmus mithilfe des RSA angegebenen Abstands.

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

Parameter

data
Byte[]

Die zu verschlüsselnden Daten.

padding
RSAEncryptionPadding

Der Abstand.

Gibt zurück

Byte[]

Die verschlüsselten Daten.

Ausnahmen

data ist null.

- oder -

padding ist null.

Der Abstandsmodus wird nicht unterstützt.

Hinweise

padding muss entweder RSAEncryptionPadding.Pkcs1 oder RSAEncryptionPadding.OaepSHA1 sein.

Gilt für: