【问题标题】:Generating public and private key pairs in c# and saving public key as plain text在 C# 中生成公钥和私钥对并将公钥保存为纯文本
【发布时间】: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


    【解决方案1】:

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

    或者你可以generate the keypair programmatically

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 2012-04-05
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多