【发布时间】:2012-09-07 02:13:54
【问题描述】:
我需要在 C# 应用程序和微控制器 (pic32mx795) 之间实现加密。我遇到的问题是生成我正在使用 RSACryptoServiceProvider 的公钥和私钥对,但我只能获取密钥属性而不是完整的公钥。
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAKeyInfo = RSA.ExportParameters(false);
我无法为微控制器提供密钥参数,因为它只需要密钥(作为字节)。有一个库可以做到这一点,但它只能在 2012 年 11 月的某个时候提供 (SW300055)。我正在使用 SW300052 库对微控制器执行加密(密钥大小限制为 256 位)。
我也在这个线程中尝试了 bouncycastle 建议(generating keys and showing them in a text box)。它以 PEM 格式保存密钥。据我了解,密钥以 base64 格式保存。我已将密钥长度指定为 256位,但将公钥转换回字节时,它是 62 字节。
byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString);
我还查看了 Microsoft 的强名称工具 (sn.exe),但它支持的最小密钥大小为 384 位。
有什么方法可以生成一个公钥私钥对并使用 c#(或任何其他工具)以纯文本/字节的形式获取公钥?我是否最好使用对称密钥加密来加密会话密钥?
【问题讨论】:
标签: encryption private-key public-key plaintext rsacryptoserviceprovider