Ich bin neu in C#. Ich werde aufgefordert, eine Zeichenfolge zu verschlüsseln, bevor ich diese Informationen an eine externe URL weitergebe. Alles, was ich als Eingabe von dieser externen Anwendung bekam, war eine .der-Datei und eine .pem-Datei. Sie haben mich gebeten, die verschlüsselten (String-) Informationen zu senden, damit sie entschlüsseln können.C# Verschlüsselung, habe .der und .pem Dateien als Eingabe
Ich habe viele Beiträge gelesen, konnte aber nicht die genaue Antwort darauf bekommen, wie ich das lösen kann.
Ich benutze das folgende Code-Snippet, um die .pem-Datei zu lesen und ein Zertifikat zu erstellen. Aber auf neue X509Certificate2 (certBuffer); Zeile wirft mich ein "kann das angeforderte Objekt nicht finden" -Fehler. Ich bin mir nicht sicher, ob ich in die richtige Richtung gehe. Wenn ja, hilf mir, das Problem herauszufinden. Sonst zeig mir einen Weg. Danke im Voraus!
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));
}
Dieser Code funktioniert bilden mich, aber Ihre PEM-Datei wird nur der öffentliche Schlüssel enthalten müssen. Ich bin mir nicht sicher, wie Ihr öffentlicher Schlüssel generiert wurde, aber ich habe "openssl genrsa -out private_key.pem 1024" verwendet. Dann habe ich "openssl rsa -in private_key.pem -pubout-out public_key.pem" verwendet, um den öffentlichen Schlüssel für den obigen Code zu exportieren. – Jacob