Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyimpan dan Memuatkan Kunci RSA dengan Selamat dalam Go?

Bagaimana untuk Menyimpan dan Memuatkan Kunci RSA dengan Selamat dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-12-10 05:46:18
asal
514 orang telah melayarinya

How to Securely Save and Load RSA Keys in Go?

Menyimpan dan Memuatkan Kunci Awam dan Peribadi RSA dalam Go

Soalan:

Bagaimana boleh Saya bertahan dengan selamat dan memuatkan kunci awam dan peribadi RSA ke dan dari cakera menggunakan pakej crypto/rsa masuk Pergi?

Jawapan:

Untuk menyimpan kunci peribadi RSA, pertimbangkan untuk menggunakan fungsi MarshalPKCS1PrivateKey daripada pakej crypto/x509:

func MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
Salin selepas log masuk

Fungsi ini menukar kunci persendirian ke dalam format DER (Distinguished Encoding Rules), yang boleh disimpan sebagai tatasusunan bait. Untuk memuatkan kunci persendirian daripada DER, gunakan fungsi ParsePKCS1PrivateKey:

func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err error)
Salin selepas log masuk

Untuk kunci awam, fungsi MarshalPKCS1PublicKey dan ParsePKCS1PublicKey mempunyai tujuan yang sama.

Pengekodan PEM untuk Format Standard :

Sebaliknya menyimpan data binari yang dikodkan DER secara langsung, adalah perkara biasa untuk mengekod kunci peribadi ke dalam fail PEM (Mel Dipertingkatkan Privasi). PEM mengodkan data binari menggunakan Base64 dan menambah pengepala dan pengaki pada fail. Untuk mengekod kunci persendirian, gunakan fungsi pem.EncodeToMemory:

pemdata := pem.EncodeToMemory(
    &pem.Block{
        Type: "RSA PRIVATE KEY",
        Bytes: x509.MarshalPKCS1PrivateKey(key),
    },
)
Salin selepas log masuk

Pengekodan PEM menyediakan format piawai untuk menukar kunci dan memudahkan pengendaliannya.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan dan Memuatkan Kunci RSA dengan Selamat dalam Go?. 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