4

我需要在 C# 应用程序和微控制器 (pic32mx795) 之间实现加密。我遇到的问题是生成我正在使用 RSACryptoServiceProvider 的公钥和私钥对,但我只能获取密钥属性而不是完整的公钥。

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAKeyInfo = RSA.ExportParameters(false);

我无法为微控制器提供关键参数,因为它只需要密钥(作为字节)。有一个库可以做到这一点,但它只能在 2012 年 11 月的某个时候提供(SW300055)。我正在使用 SW300052 库对微控制器执行加密(密钥大小限制为 256 位)。

我还在这个线程中尝试了 bouncycastle 建议(生成密钥并在文本框中显示它们)。它以 PEM 格式保存密钥。据我了解,密钥以 base64 格式保存。我已将密钥长度指定为 256 位,但是当将公钥转换回字节时,它是 62 字节。

byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString);

我还查看了 Microsoft 的强名称工具 (sn.exe),但它支持的最小密钥大小为 384 位。

有什么方法可以生成公钥对并使用 c#(或任何其他工具)以纯文本/字节形式获取公钥?我是否最好使用对称密钥加密来加密会话密钥?

4

1 回答 1

0

您可以在 windows 框上设置证书服务器并直接请求它们。您需要安装 MS 证书服务。您还可以使用makecert并使用c#访问密钥。

或者您可以通过编程方式生成密钥对

于 2012-09-13T22:27:19.267 回答