ホームページ > バックエンド開発 > Golang > OpenSSL の「openssl genrsa」コマンドと同様に、Go で RSA キー ペアを生成するにはどうすればよいですか?

OpenSSL の「openssl genrsa」コマンドと同様に、Go で RSA キー ペアを生成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-14 15:49:14
オリジナル
837 人が閲覧しました

How Can I Generate RSA Key Pairs in Go, Similar to OpenSSL's `openssl genrsa` Command?

Openssl と同じ方法で Go を使用して RSA キーを生成する

OpenSSL コマンド openssl genrsa は RSA キーのペアを生成し、あるファイルには秘密キーがあり、別のファイルには公開キーがあります。 Go でこの機能を実現するには、次の手順に従います。

  1. RSA キー ペアを生成します:
import "crypto/rand"

key, err := rsa.GenerateKey(rand.Reader, bitSize)
if err != nil {
    panic(err)
}
ログイン後にコピー
  1. 一般公開を抽出するkey:
import "crypto/rsa"

pub := key.Public()
ログイン後にコピー
  1. キーを PEM 形式でエンコードします:
import (
    "encoding/pem"
    "crypto/x509"
)

keyPEM := pem.EncodeToMemory(
    &pem.Block{
        Type:  "RSA PRIVATE KEY",
        Bytes: x509.MarshalPKCS1PrivateKey(key),
    },
)

pubPEM := pem.EncodeToMemory(
    &pem.Block{
        Type:  "RSA PUBLIC KEY",
        Bytes: x509.MarshalPKCS1PublicKey(pub.(*rsa.PublicKey)),
    },
)
ログイン後にコピー
  1. PEM エンコードされたキーを次の場所に書き込みますfiles:
import "io/ioutil"

err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700)
err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755)
ログイン後にコピー

このコードは、それぞれ秘密 RSA キーと公開 RSA キーを含む 2 つのファイル、filename.rsa と filename.rsa.pub を生成します。キーは PEM 形式であるため、簡単にインポートして他のアプリケーションで使用できます。

以上がOpenSSL の「openssl genrsa」コマンドと同様に、Go で RSA キー ペアを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート