MarshalPKIXPublicKey() と MarshalPKCS1PublicKey() は、x509 パッケージで定義されている 2 つの関数ですGo標準ライブラリの。どちらも公開キーのシリアル化を処理しますが、それぞれの使用法は、基礎となるプロトコルまたはアプリケーションの特定の要件に基づいて異なります。
目的:公開鍵を DER でエンコードされた PKIX 形式に変換します。
DER でエンコードされた PKIX 形式:
MarshalPKIXPublicKey() のコンテキストでは、公開キーが SubjectPublicKeyInfo 構造にシリアル化され、DER エンコードされます。 SubjectPublicKeyInfo 構造体には、使用されるアルゴリズムと公開キーの値自体に関する情報が含まれます。
目的: RSA 公開キーを PKCS#1、ASN に変換します。 .1 DER 形式。
PKCS#1:
MarshalPKCS1PublicKey() は RSA をシリアル化します。公開キーを PKCS#1 によって定義された ASN.1 構造に変換します。この構造には、RSA アルゴリズムのパラメーターと鍵の係数と指数に関する情報が含まれています。結果のデータは DER エンコードされます。
Feature | MarshalPKIXPublicKey() | MarshalPKCS1PublicKey() |
---|---|---|
Input | Any type of public key | RSA public key specifically |
Output format | DER-encoded PKIX SubjectPublicKeyInfo | DER-encoded PKCS#1 ASN.1 structure |
Algorithm independence | Yes | No (only RSA public keys) |
MarshalPKIXPublicKey() は、公開キーを一般的にシリアル化する必要がある場合に使用されます。 X.509 証明書に依存する幅広いプロトコルやアプリケーションで使用できる目的の形式。
MarshalPKCS1PublicKey() は、PKCS#1 標準に準拠した形式で RSA 公開鍵をシリアル化するために特に使用されます。 。これは、データのデジタル署名や RSA キーを使用して作成された署名の検証などのコンテキストで一般的に使用されます。
以上がGo で MarshalPKIXPublicKey() と MarshalPKCS1PublicKey() を使用する場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。