Den Unterschied zwischen MarshalPKIXPublicKey() und MarshalPKCS1PublicKey() verstehen
In der Go-Standardbibliothek x509.MarshalPKIXPublicKey() und x509.MarshalPKCS1PublicKey () sind zwei Funktionen, die die Serialisierung öffentlicher Schlüssel in DER-codierte Formate erleichtern.
ASN.1 und DER
Bevor wir uns mit den Unterschieden zwischen den beiden Funktionen befassen ist es wichtig, zwei Schlüsselkonzepte zu verstehen:
-
ASN.1 (Abstract Syntax Notation One): Ein weit verbreitetes Notationssystem zur Beschreibung von Datenstrukturen, die von Systemen gemeinsam genutzt werden.
-
DER (Distinguished Encoding Rules): Ein spezifisches Codierungsschema, das zur Darstellung von ASN.1-Daten in einem kompakten Binärformat verwendet wird.
MarshalPKCS1PublicKey()
- Serialisiert einen öffentlichen RSA-Schlüssel in die DER-codierte Darstellung der PKCS#1 ASN.1-Struktur.
- Der PKCS#1-Standard definiert, wie öffentliche RSA-Schlüssel dargestellt werden, einschließlich ihrer Modul und Exponent.
- Diese Funktion kodiert den öffentlichen Schlüssel in eine DER-kodierte Zeichenfolge unter Verwendung der RSAPublicKey ASN.1-Struktur von PKCS#1.
MarshalPKIXPublicKey()
- Serialisiert einen öffentlichen Schlüssel in die DER-codierte Darstellung der SubjectPublicKeyInfo-Struktur von PKIX/X.509.
- PKIX/X.509 ist eine Internetvariante von X.509 Standard, und seine SubjectPublicKeyInfo-Struktur definiert eine allgemeinere Methode zur Darstellung verschiedener öffentlicher Schlüsselalgorithmen.
- Für öffentliche RSA-Schlüssel enthält diese DER-codierte Darstellung die Algorithmus-ID für RSA (OID 1.2.840.113549.1.1.1). und die Parameter NULL, zusammen mit der DER-codierten PKCS#1 RSAPublicKey-Struktur.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „MarshalPKIXPublicKey()' und „MarshalPKCS1PublicKey()' in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!