我刚开始学习C#,被要求在将信息发布到外部URL之前对其进行加密。我从该外部应用程序中获取的所有输入都是一个 .der 文件和一个 .pem 文件。他们要求我发送已加密(字符串)信息,以便他们可以解密。
我阅读了很多帖子,但没有找到确切的答案来解决这个问题。
我正在使用下面的代码片段读取 .pem 文件并创建证书。但是在 new X509Certificate2(certBuffer); 行上抛出“无法找到请求的对象”错误。我不确定我是否朝着正确的方向前进。如果是,请帮助我找出问题所在。否则请给我指条明路。先谢谢!
我阅读了很多帖子,但没有找到确切的答案来解决这个问题。
我正在使用下面的代码片段读取 .pem 文件并创建证书。但是在 new X509Certificate2(certBuffer); 行上抛出“无法找到请求的对象”错误。我不确定我是否朝着正确的方向前进。如果是,请帮助我找出问题所在。否则请给我指条明路。先谢谢!
var pem = System.IO.File.ReadAllText("C:\\Users\\bvarapr1\\Desktop\\fordsync\\public_qa.pem");
byte[] certBuffer = GetBytesFromPEM(pem, "PUBLIC KEY");
var certificate = new X509Certificate2( certBuffer );
RSACryptoServiceProvider provider = (RSACryptoServiceProvider)certificate.PrivateKey;
string testString = "DIGITALMOON";
string encryptedVIN = RSAEnc(provider, testString);
byte[] GetBytesFromPEM(string pemString, string section)
{
var header = String.Format("-----BEGIN {0}-----", section);
var footer = String.Format("-----END {0}-----", section);
var start = pemString.IndexOf(header, StringComparison.Ordinal) + header.Length;
var end = pemString.IndexOf(footer, start, StringComparison.Ordinal) - start;
if (start < 0 || end < 0)
{
return null;
}
return Convert.FromBase64String(pemString.Substring(start, end));
}