你如何在C#中导入公钥?

Chr*_*ris 1 c# client-server rsa

我可以创建服务器和客户端的非对称密钥,然后导出它们并尝试交换它们。我的问题,我一直无法找到解决方案,是我想将服务器的公钥导入客户端程序。它以字节 [] 的形式出现,但我需要能够将其用作 RSAParameters 才能加密数据以发送到服务器。如何将 byte[] 转换为 RSAParameters 类型?

private void secureButton_Click(object sender, EventArgs e)
        {
            clientRSA = new RSACryptoServiceProvider();
            byte[] clientPublicKey = clientRSA.ExportCspBlob(false);

            stm.Write(clientPublicKey, 0, clientPublicKey.Length);
            stm.Read(serverPublicKey, 0, serverPublicKey.Length);
        }
Run Code Online (Sandbox Code Playgroud)

我知道这不是一种“安全”的方法,因为它容易受到 MITM 的影响,但我正面临学校的最后期限,这是我需要克服的砖墙,才能继续进行下去。

任何帮助,将不胜感激。提前致谢。

Pet*_*ete 5

我会继续把这个作为答案,然后:

我从来没有做过 blob,但我通常做的是RSACryptoServiceProvider.ToXMLString()用来导出到 XML。然后我将该 XML 放在我的应用程序的资源中,然后在将来用于RSACryptoServiceProvider.FromXMLString()加载关键参数。

您不必保护公钥。这是公开的