私は暗号の専門家ではありませんが、私が理解しているように、3DES は対称暗号化アルゴリズムであり、公開鍵/秘密鍵を使用しません。
それにもかかわらず、私は公開鍵 (具体的には .CER ファイル) を使用してデータを暗号化する任務を負っています。対称/非対称タング全体を無視すると、公開鍵からの鍵データを TripleDES 鍵として使用できるはずです。ただし、.CER ファイルからキー バイトを抽出するのに苦労しています。これはそのままのコードです..
TripleDESCryptoServiceProvider cryptoProvider = new TripleDESCryptoServiceProvider();
X509Certificate2 cert = new X509Certificate2(@"c:\temp\whatever.cer");
cryptoProvider.Key = cert.PublicKey.Key.
証明書から未加工のキー バイトを抽出する最も簡単な方法は、ToXmlString(bool) であり、返された文字列に対してハッキーな部分文字列化を行います。しかし、これは非常にハックなようで、もっと簡単で明白な方法が欠けているに違いないと感じています。
.cer ファイルを使用してキー データを C# 3DES 暗号化クラスに提供する簡単な方法を見逃しているのでしょうか、それとも証明書の xml 文字列からハッキングするのが本当に最善の方法なのでしょうか?