use*_*897 5 encryption plaintext rsacryptoserviceprovider public-key private-key
我需要在 C# 应用程序和微控制器 (pic32mx795) 之间实现加密。我遇到的问题是生成一个公钥和私钥对,我正在使用 RSACryptoServiceProvider,但我只能获取密钥属性,而不能获取完整的公钥。
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAKeyInfo = RSA.ExportParameters(false);
Run Code Online (Sandbox Code Playgroud)
我无法向微控制器提供关键参数,因为它只需要密钥(以字节为单位)。有一个库可以做到这一点,但它只能在 2012 年 11 月的某个时候可用 ( SW300055 )。我正在使用 SW300052 库对微控制器执行加密(密钥大小限制为 256 位)。
我还在这个线程中尝试了 bouncycastle 建议(生成密钥并在文本框中显示它们)。它将密钥保存为 PEM 格式。据我了解,密钥以 base64 格式保存。我已将密钥长度指定为 256 位,但将公钥转换回字节时,它是 62 字节。
byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString);
Run Code Online (Sandbox Code Playgroud)
我还查看了 Microsoft 的强名称工具 (sn.exe),但它支持的最小密钥大小是 384 位。
有什么方法可以生成公钥私钥对并使用 c# (或使用任何其他工具)以纯文本/字节形式获取公钥?我是否最好使用对称密钥加密来加密会话密钥?