RSACryptoServiceProvider.Encrypt Methode

Definition

Verschlüsselt Daten mit dem RSA-Algorithmus.Encrypts data with the RSA algorithm.

Überlädt

Encrypt(Byte[], Boolean)

Verschlüsselt Daten mit dem RSA-Algorithmus.Encrypts data with the RSA algorithm.

Encrypt(Byte[], RSAEncryptionPadding)

Verschlüsselt Daten mit dem RSA-Algorithmus unter Verwendung der angegebenen Auffüllung.Encrypts data with the RSA algorithm using the specified padding.

Encrypt(Byte[], Boolean)

Verschlüsselt Daten mit dem RSA-Algorithmus.Encrypts data with the RSA algorithm.

public:
 cli::array <System::Byte> ^ Encrypt(cli::array <System::Byte> ^ rgb, bool fOAEP);
public byte[] Encrypt (byte[] rgb, bool fOAEP);
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.The data to be encrypted.

fOAEP
Boolean

true, um direkte RSA-Verschlüsselung mit OAEP auszuführen (nur auf einem Computer unter Windows XP oder höher verfügbar), andernfalls false, wenn Auffüllung (Padding) gemäß PKCS#1 v1.5 verwendet wird.true to perform direct RSA encryption using OAEP padding (only available on a computer running Windows XP or later); otherwise, false to use PKCS#1 v1.5 padding.

Gibt zurück

Byte[]

Die verschlüsselten Daten.The encrypted data.

Ausnahmen

Der Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) kann nicht abgerufen werden.The cryptographic service provider (CSP) cannot be acquired.

- oder --or- Der rgb-Parameter ist länger als zulässig.The length of the rgb parameter is greater than the maximum allowed length.

rgb ist null.rgb is null.

Beispiele

Im folgenden Codebeispiel wird ein- RSACryptoServiceProvider Objekt mit dem Wert eines öffentlichen Schlüssels initialisiert (von einer anderen Partei gesendet), ein Sitzungsschlüssel mithilfe des Aes -Algorithmus generiert und anschließend der Sitzungsschlüssel mithilfe des- RSACryptoServiceProvider Objekts verschlüsselt.The following code example initializes an RSACryptoServiceProvider object to the value of a public key (sent by another party), generates a session key using the Aes algorithm, and then encrypts the session key using the RSACryptoServiceProvider object. Mithilfe dieses Schemas könnte der Sitzungsschlüssel an den Besitzer des privaten RSA-Schlüssels zurückgesendet werden, und die beiden Parteien können den Sitzungsschlüssel zum Austauschen verschlüsselter Daten verwenden.Using this scheme, the session key could be sent back to the owner of the private RSA key and the two parties could use the session key to exchange encrypted data.

#using <System.dll>

using namespace System;
using namespace System::Security::Cryptography;
int main()
{
   try
   {
      
      //initialze the Byte arrays to the public key information.
      array<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};
      array<Byte>^Exponent = {1,0,1};
      
      //Values to store encrypted symmetric keys.
      array<Byte>^EncryptedSymmetricKey;
      array<Byte>^EncryptedSymmetricIV;
      
      //Create a new instance of RSACryptoServiceProvider.
      RSACryptoServiceProvider^ RSA = gcnew RSACryptoServiceProvider;
      
      //Create a new instance of RSAParameters.
      RSAParameters RSAKeyInfo;
      
      //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 ( CryptographicException^ e ) 
   {
      
      //Catch and display a CryptographicException  
      //to the console.
      Console::WriteLine( e->Message );
   }

}

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 zulässige Länge rgb durch die verschiedenen Kombinationen von Betriebssystemen und Auffüllung beschrieben.The following table describes the padding supported by different versions of Microsoft Windows and the maximum length of rgb allowed by the different combinations of operating systems and padding.

AuffüllenPadding Maximale Länge des RGB-ParametersMaximum Length of rgb Parameter
OAEP-Auffüll Zeichen (PKCS # 1 V2)OAEP padding (PKCS#1 v2) Modulus size-2-2-2 * hlen, wobei hlen die Größe des Hashwerts ist.Modulus size -2 -2*hLen, where hLen is the size of the hash.
Direkte Verschlüsselung (PKCS # 1 v 1.5)Direct Encryption (PKCS#1 v1.5) Modulus Größe-11.Modulus size - 11. (11 Bytes ist die minimale Auffüll Möglichkeit.)(11 bytes is the minimum padding possible.)

Verwenden Decrypt Sie, um die Ergebnisse dieser Methode zu entschlüsseln.Use Decrypt to decrypt the results of this method.

Weitere Informationen

Gilt für:

Encrypt(Byte[], RSAEncryptionPadding)

Verschlüsselt Daten mit dem RSA-Algorithmus unter Verwendung der angegebenen Auffüllung.Encrypts data with the RSA algorithm using the specified padding.

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.The data to encrypt.

padding
RSAEncryptionPadding

Der Paddingmodus.The padding.

Gibt zurück

Byte[]

Die verschlüsselten Daten.The encrypted data.

Ausnahmen

data ist null.data is null.

- oder --or- padding ist null.padding is null.

Der Paddingmodus wird nicht unterstützt.The padding mode is not supported.

Hinweise

padding muss entweder RSAEncryptionPadding.Pkcs1 oder sein RSAEncryptionPadding.OaepSHA1 .padding must be either RSAEncryptionPadding.Pkcs1 or RSAEncryptionPadding.OaepSHA1.

Gilt für: