Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menjana Pasangan Kunci RSA dalam Go, Sama seperti Perintah `openssl genrsa` OpenSSL?

Bagaimanakah Saya Boleh Menjana Pasangan Kunci RSA dalam Go, Sama seperti Perintah `openssl genrsa` OpenSSL?

Susan Sarandon
Lepaskan: 2024-12-14 15:49:14
asal
835 orang telah melayarinya

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

Gunakan Go to Generate RSA Keys dengan Cara Yang Sama seperti Openssl

Arahan OpenSSL openssl genrsa menjana sepasang kunci RSA, menyimpan kunci peribadi dalam satu fail dan kunci awam dalam fail lain. Untuk mencapai fungsi ini dalam Go, anda boleh mengikuti langkah berikut:

  1. Jana pasangan kunci RSA:
import "crypto/rand"

key, err := rsa.GenerateKey(rand.Reader, bitSize)
if err != nil {
    panic(err)
}
Salin selepas log masuk
  1. Ekstrak orang ramai kunci:
import "crypto/rsa"

pub := key.Public()
Salin selepas log masuk
  1. Ekodkan kunci dalam format 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)),
    },
)
Salin selepas log masuk
  1. Tulis kunci berkod PEM ke fail:
import "io/ioutil"

err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700)
err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755)
Salin selepas log masuk

Kod ini akan menghasilkan dua fail, nama fail.rsa dan nama fail.rsa.pub, masing-masing mengandungi kunci RSA peribadi dan awam. Kekunci akan berada dalam format PEM, yang membolehkan anda mengimport dan menggunakannya dengan mudah dengan aplikasi lain.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Pasangan Kunci RSA dalam Go, Sama seperti Perintah `openssl genrsa` OpenSSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan