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
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)
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), }, )
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!