


Der private Schlüssel, den ich in Node.js generiert habe, wird in Go nicht als PEM-Format erkannt
php-Editor Xigua ist während des letzten Entwicklungsprozesses auf ein Problem gestoßen. Er hat festgestellt, dass der mit Node.js generierte private Schlüssel in Go nicht als PEM-Format erkannt werden konnte. Dieses Problem beschäftigte ihn lange Zeit und er versuchte es mit verschiedenen Methoden zu lösen, jedoch ohne Erfolg. In diesem Artikel werden wir die Ursachen dieses Problems und mögliche Lösungen untersuchen, um den Lesern bei der Lösung ähnlicher Probleme zu helfen.
Frageninhalt
Ich habe die öffentlichen und privaten Schlüssel in node.js mithilfe der Verschlüsselungsbibliothek und dem folgenden Code generiert.
function generatekeyfiles() { const keypair = crypto.generatekeypairsync("rsa", { moduluslength: 4096, publickeyencoding: { type: "spki", format: "pem", }, privatekeyencoding: { type: "pkcs8", format: "pem", cipher: "aes-256-cbc", passphrase: "", }, }); // writing the keys in the following files fs.writefilesync("public_key", keypair.publickey); fs.writefilesync("private_key", keypair.privatekey); }
Ich weiß, dass die Schlüssel funktionieren, weil ich sie zum Ver- und Entschlüsseln von Daten verwendet habe. Aber ich versuche, sie in go zu verwenden, und es kann den privaten Schlüssel im PEM-Format nicht erkennen. Es erkennt jedoch den öffentlichen Schlüssel. Hier ist mein Go-Code-Snippet:
// Load public key from the "public_key" file generated by Node.js publicKeyData, err := ioutil.ReadFile("public_key") if err != nil { fmt.Println("Error reading the public key file:", err) return } // Load public key in PEM format block, _ := pem.Decode(publicKeyData) if block == nil || block.Type != "PUBLIC KEY" { fmt.Println("The public key file is not in PEM format") return } publicKey, err := x509.ParsePKIXPublicKey(block.Bytes) if err != nil { fmt.Println("Error loading the public key:", err) return } // Successfully loaded the public key in Go fmt.Println("Public key loaded successfully:", publicKey) // Load private key from the "private_key" file generated by Node.js privateKeyData, err := ioutil.ReadFile("private_key") if err != nil { fmt.Println("Error reading the private key file:", err) return } // Load private key in PEM format block, _ = pem.Decode(privateKeyData) if block == nil || block.Type != "PRIVATE KEY" { fmt.Println("The private key file is not in PEM format") return }
Bitte, ich brauche Hilfe. Ich verstehe nicht, warum, wenn ich öffentliche und private Schlüssel zur Verschlüsselung in meinem anderen node.js-Programm verwende, der öffentliche Schlüssel, aber nicht der private Schlüssel gelesen wird. Es heißt: „Die Datei mit dem privaten Schlüssel liegt nicht im PEM-Format vor“, aber das ergibt keinen Sinn.
Ich habe versucht, einen neuen Schlüssel zu generieren, aber genau das gleiche Problem besteht weiterhin.
Workaround
Ich habe dieses Problem endlich gelöst, indem ich die OpenSSL-Bibliothek unter Windows cmd verwendet habe, um Schlüssel zu generieren. Anschließend habe ich die Daten mit den von OpenSSL generierten Schlüsseln verschlüsselt und entschlüsselt. Ich musste die entschlüsselten Daten in go bereinigen, aber es hat schließlich funktioniert.
Das obige ist der detaillierte Inhalt vonDer private Schlüssel, den ich in Node.js generiert habe, wird in Go nicht als PEM-Format erkannt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Dieser Artikel erläutert die Paketimportmechanismen von Go: benannte Importe (z. B. importieren & quot; fmt & quot;) und leere Importe (z. B. Import _ & quot; fmt & quot;). Benannte Importe machen Paketinhalte zugänglich, während leere Importe nur T ausführen

In diesem Artikel werden die Newflash () -Funktion von BeEGO für die Übertragung zwischen PAGE in Webanwendungen erläutert. Es konzentriert sich auf die Verwendung von Newflash (), um temporäre Nachrichten (Erfolg, Fehler, Warnung) zwischen den Controllern anzuzeigen und den Sitzungsmechanismus zu nutzen. Limita

Dieser Artikel beschreibt die effiziente Konvertierung von MySQL -Abfrageergebnissen in GO -Strukturscheiben. Es wird unter Verwendung der SCAN -Methode von Datenbank/SQL zur optimalen Leistung hervorgehoben, wobei die manuelle Parsen vermieden wird. Best Practices für die Struktur -Feldzuordnung mithilfe von DB -Tags und Robus

Dieser Artikel zeigt, dass Mocks und Stubs in GO für Unit -Tests erstellen. Es betont die Verwendung von Schnittstellen, liefert Beispiele für Mock -Implementierungen und diskutiert Best Practices wie die Fokussierung von Mocks und die Verwendung von Assertion -Bibliotheken. Die Articl

In diesem Artikel werden die benutzerdefinierten Typ -Einschränkungen von GO für Generika untersucht. Es wird beschrieben, wie Schnittstellen die minimalen Typanforderungen für generische Funktionen definieren und die Sicherheitstypsicherheit und die Wiederverwendbarkeit von Code verbessern. Der Artikel erörtert auch Einschränkungen und Best Practices

Dieser Artikel beschreibt effizientes Dateischreiben in Go und vergleicht OS.WriteFile (geeignet für kleine Dateien) mit OS.openfile und gepufferter Schreibvorgänge (optimal für große Dateien). Es betont eine robuste Fehlerbehandlung, die Verwendung von Aufschub und Überprüfung auf bestimmte Fehler.

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

In diesem Artikel wird die Verwendung von Tracing -Tools zur Analyse von GO -Anwendungsausführungsfluss untersucht. Es werden manuelle und automatische Instrumentierungstechniken, den Vergleich von Tools wie Jaeger, Zipkin und Opentelemetrie erörtert und die effektive Datenvisualisierung hervorheben
