RSAOAEPKeyExchangeFormatter.CreateKeyExchange Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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[])
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
Data pertukaran kunci terenkripsi yang akan dikirim ke penerima yang dimaksudkan.
Pengecualian
Kunci hilang.
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)
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
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.