RSAOAEPKeyExchangeFormatter.CreateKeyExchange Metode

Definisi

Membuat data pertukaran kunci terenkripsi.

Overload

CreateKeyExchange(Byte[])

Membuat data pertukaran kunci terenkripsi dari data input yang ditentukan.

CreateKeyExchange(Byte[], Type)

Membuat data pertukaran kunci terenkripsi dari data input yang ditentukan.

CreateKeyExchange(Byte[])

Sumber:
RSAOAEPKeyExchangeFormatter.cs
Sumber:
RSAOAEPKeyExchangeFormatter.cs
Sumber:
RSAOAEPKeyExchangeFormatter.cs

Membuat data pertukaran kunci terenkripsi dari data input yang ditentukan.

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

Parameter

rgbData
Byte[]

Informasi rahasia yang akan diteruskan dalam pertukaran kunci.

Mengembalikan

Byte[]

Data pertukaran kunci terenkripsi yang akan dikirim ke penerima yang dimaksudkan.

Pengecualian

Keterangan

Data ini hanya dapat ditafsirkan oleh pemegang kunci privat yang sesuai dengan kunci publik yang digunakan untuk mengenkripsi data. Ini membantu memastikan bahwa hanya penerima yang dimaksudkan yang dapat mengakses informasi rahasia.

Lihat juga

Berlaku untuk

CreateKeyExchange(Byte[], Type)

Sumber:
RSAOAEPKeyExchangeFormatter.cs
Sumber:
RSAOAEPKeyExchangeFormatter.cs
Sumber:
RSAOAEPKeyExchangeFormatter.cs

Membuat data pertukaran kunci terenkripsi dari data input yang ditentukan.

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

Parameter

rgbData
Byte[]

Informasi rahasia yang akan diteruskan dalam pertukaran kunci.

symAlgType
Type

Parameter ini tidak digunakan dalam versi saat ini.

Mengembalikan

Byte[]

Data pertukaran kunci terenkripsi yang akan dikirim ke penerima yang dimaksudkan.

Contoh

Contoh berikut menunjukkan cara menggunakan RSAOAEPKeyExchangeFormatter.CreateKeyExchange metode untuk membuat kunci pertukaran untuk penerima pesan. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk RSAOAEPKeyExchangeFormatter kelas

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

Keterangan

Data ini hanya dapat ditafsirkan oleh pemegang kunci privat yang sesuai dengan kunci publik yang digunakan untuk mengenkripsi data. Ini membantu memastikan bahwa hanya penerima yang dimaksudkan yang dapat mengakses informasi rahasia.

Lihat juga

Berlaku untuk