Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menjana Pasangan Kunci RSA dalam Go dan Menulisnya untuk Mengasingkan Fail?

Bagaimana untuk Menjana Pasangan Kunci RSA dalam Go dan Menulisnya untuk Mengasingkan Fail?

Barbara Streisand
Barbara Streisandasal
2024-12-16 13:35:10483semak imbas

How to Generate RSA Key Pairs in Go and Write Them to Separate Files?

Menjana Kunci RSA dalam Go Like openssl genrsa

Ikhtisar

Arahan openssl genrsa menjana kunci RSA. Kita boleh mencapai fungsi yang sama dalam Go menggunakan pakej crypto/rsa. Artikel ini menyediakan panduan terperinci tentang cara menjana pasangan kunci RSA dan menulisnya untuk memisahkan fail dalam Go.

Panduan Langkah demi Langkah

1. Import Perpustakaan yang Diperlukan

import (
    "crypto/rand"
    "crypto/rsa"
    "crypto/x509"
    "encoding/pem"
    "io/ioutil"
)

2. Jana Pasangan Kunci

filename := "key"
bitSize := 4096

// Generate RSA keypair
key, err := rsa.GenerateKey(rand.Reader, bitSize)

3. Ekstrak Komponen Awam

pub := key.Public()

4. Kodkan kepada PEM

// Encode private key to PKCS#1 ASN.1 PEM
keyPEM := pem.EncodeToMemory(
    &pem.Block{
        Type:  "RSA PRIVATE KEY",
        Bytes: x509.MarshalPKCS1PrivateKey(key),
    },
)

// Encode public key to PKCS#1 ASN.1 PEM
pubPEM := pem.EncodeToMemory(
    &pem.Block{
        Type:  "RSA PUBLIC KEY",
        Bytes: x509.MarshalPKCS1PublicKey(pub.(*rsa.PublicKey)),
    },
)

5. Tulis ke Fail

// Write private key to file
if err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700); err != nil {
    panic(err)
}

// Write public key to file
if err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755); err != nil {
    panic(err)
}

Kesimpulan

Dengan mengikut langkah yang digariskan di atas, anda boleh menjana pasangan kunci RSA dengan mudah dan menulisnya untuk memisahkan fail dalam Go, serupa dengan arahan openssl genrsa. Panduan komprehensif ini menyediakan asas yang kukuh untuk bekerja dengan kunci RSA dalam aplikasi Go anda.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Pasangan Kunci RSA dalam Go dan Menulisnya untuk Mengasingkan Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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