Öffentliche und private RSA-Schlüssel in Go speichern und laden
Frage:
Wie kann Ich behalte die öffentlichen und privaten RSA-Schlüssel sicher bei und lade sie mithilfe des crypto/rsa-Pakets auf und von der Festplatte Los?
Antwort:
Um einen privaten RSA-Schlüssel zu speichern, sollten Sie die Funktion MarshalPKCS1PrivateKey aus dem Paket crypto/x509 verwenden:
func MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
Diese Funktion wandelt den privaten Schlüssel in ein DER-Format (Distinguished Encoding Rules) um, das als Byte gespeichert werden kann Array. Um den privaten Schlüssel aus DER zu laden, verwenden Sie die Funktion ParsePKCS1PrivateKey:
func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err error)
Für öffentliche Schlüssel dienen die Funktionen MarshalPKCS1PublicKey und ParsePKCS1PublicKey einem ähnlichen Zweck.
PEM-Codierung für das Standardformat :
Anstatt zu lagern Um die DER-kodierten Binärdaten direkt zu übertragen, ist es üblich, den privaten Schlüssel in eine PEM-Datei (Privacy-Enhanced Mail) zu kodieren. PEM kodiert Binärdaten mit Base64 und fügt der Datei Kopf- und Fußzeilen hinzu. Um den privaten Schlüssel zu kodieren, verwenden Sie die Funktion pem.EncodeToMemory:
pemdata := pem.EncodeToMemory( &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key), }, )
PEM-Kodierung bietet ein standardisiertes Format für den Austausch von Schlüsseln und vereinfacht deren Handhabung.
Das obige ist der detaillierte Inhalt vonWie speichere und lade ich RSA-Schlüssel sicher in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!