RSAPKCS1KeyExchangeFormatter.CreateKeyExchange Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ş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[])
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
Hedeflenen alıcıya gönderilecek şifrelenmiş anahtar değişimi verileri.
Özel durumlar
rgbData
çok büyük.
Anahtar ise null
olur.
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)
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
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.