Aracılığıyla paylaş


RSAPKCS1KeyExchangeFormatter.CreateKeyExchange Yöntem

Tanım

Şifrelenmiş anahtar değişim verilerini oluşturur.

Aşırı Yüklemeler

CreateKeyExchange(Byte[])

Belirtilen giriş verilerinden şifrelenmiş anahtar değişimi verilerini oluşturur.

CreateKeyExchange(Byte[], Type)

Belirtilen giriş verilerinden şifrelenmiş anahtar değişimi verilerini oluşturur.

CreateKeyExchange(Byte[])

Kaynak:
RSAPKCS1KeyExchangeFormatter.cs
Kaynak:
RSAPKCS1KeyExchangeFormatter.cs
Kaynak:
RSAPKCS1KeyExchangeFormatter.cs

Belirtilen giriş verilerinden şifrelenmiş anahtar değişimi verilerini oluşturur.

public:
 override cli::array <System::Byte> ^ CreateKeyExchange(cli::array <System::Byte> ^ rgbData);
public override byte[] CreateKeyExchange (byte[] rgbData);
override this.CreateKeyExchange : byte[] -> byte[]
Public Overrides Function CreateKeyExchange (rgbData As Byte()) As Byte()

Parametreler

rgbData
Byte[]

Anahtar değişiminde geçirilecek gizli dizi bilgileri.

Döndürülenler

Byte[]

Hedeflenen alıcıya gönderilecek şifrelenmiş anahtar değişimi verileri.

Özel durumlar

rgbData çok büyük.

Açıklamalar

Bu veriler yalnızca verileri şifrelemek için kullanılan ortak anahtara karşılık gelen özel anahtarın sahibi tarafından yorumlanabilir. Bu, gizli dizi bilgilerine yalnızca hedeflenen alıcının erişebilmesini sağlamaya yardımcı olur.

Ayrıca bkz.

Şunlara uygulanır

CreateKeyExchange(Byte[], Type)

Kaynak:
RSAPKCS1KeyExchangeFormatter.cs
Kaynak:
RSAPKCS1KeyExchangeFormatter.cs
Kaynak:
RSAPKCS1KeyExchangeFormatter.cs

Belirtilen giriş verilerinden şifrelenmiş anahtar değişimi verilerini oluşturur.

public:
 override cli::array <System::Byte> ^ CreateKeyExchange(cli::array <System::Byte> ^ rgbData, Type ^ symAlgType);
public override byte[] CreateKeyExchange (byte[] rgbData, Type? symAlgType);
public override byte[] CreateKeyExchange (byte[] rgbData, Type symAlgType);
override this.CreateKeyExchange : byte[] * Type -> byte[]
Public Overrides Function CreateKeyExchange (rgbData As Byte(), symAlgType As Type) As Byte()

Parametreler

rgbData
Byte[]

Anahtar değişiminde geçirilecek gizli dizi bilgileri.

symAlgType
Type

Bu parametre geçerli sürümde kullanılmaz.

Döndürülenler

Byte[]

Hedeflenen alıcıya gönderilecek şifrelenmiş anahtar değişimi verileri.

Örnekler

Aşağıdaki örnekte, bir ileti alıcısı RSAPKCS1KeyExchangeFormatter.CreateKeyExchange için exchange anahtarı oluşturmak için yönteminin nasıl kullanılacağı gösterilmektedir. Bu kod örneği, sınıfı için RSAPKCS1KeyExchangeFormatter sağlanan daha büyük bir örneğin parçasıdır.

private static void Send(RSA key, string secretMessage, out byte[] iv, out byte[] encryptedSessionKey, out byte[] encryptedMessage)
{
    using (Aes aes = new AesCryptoServiceProvider())
    {
        iv = aes.IV;

        // Encrypt the session key
        RSAPKCS1KeyExchangeFormatter keyFormatter = new RSAPKCS1KeyExchangeFormatter(key);
        encryptedSessionKey = keyFormatter.CreateKeyExchange(aes.Key, typeof(Aes));

        // Encrypt the message
        using (MemoryStream ciphertext = new MemoryStream())
        using (CryptoStream cs = new CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write))
        {
            byte[] plaintextMessage = Encoding.UTF8.GetBytes(secretMessage);
            cs.Write(plaintextMessage, 0, plaintextMessage.Length);
            cs.Close();

            encryptedMessage = ciphertext.ToArray();
        }
    }
}
Private Shared Sub Send(ByVal key As RSA, ByVal secretMessage As String, ByRef iv() As Byte, ByRef encryptedSessionKey() As Byte, ByRef encryptedMessage() As Byte)
    Dim aes = New AesCryptoServiceProvider()
    Try
        iv = aes.IV

        ' Encrypt the session key
        Dim keyFormatter As New RSAPKCS1KeyExchangeFormatter(key)
        encryptedSessionKey = keyFormatter.CreateKeyExchange(aes.Key, GetType(Aes))

        ' Encrypt the message
        Dim ciphertext As New MemoryStream()
        Try
            Dim cs As New CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write)
            Try
                Dim plaintextMessage As Byte() = Encoding.UTF8.GetBytes(secretMessage)
                cs.Write(plaintextMessage, 0, plaintextMessage.Length)
                cs.Close()

                encryptedMessage = ciphertext.ToArray()
            Finally
                cs.Dispose()
            End Try
        Finally
            ciphertext.Dispose()
        End Try
    Finally
        aes.Dispose()
    End Try

End Sub

Açıklamalar

Bu veriler yalnızca verileri şifrelemek için kullanılan ortak anahtara karşılık gelen özel anahtarın sahibi tarafından yorumlanabilir. Bu, gizli dizi bilgilerine yalnızca hedeflenen alıcının erişebilmesini sağlamaya yardımcı olur.

Ayrıca bkz.

Şunlara uygulanır