Menyimpan dan Memuatkan Kunci Peribadi dan Awam untuk Penyulitan RSA
Apabila bekerja dengan pakej crypto/rsa dalam Go, ia menjadi perlu untuk menyimpan dan dapatkan semula kunci peribadi dan awam dengan selamat. Artikel ini menyediakan panduan komprehensif tentang mengendalikan tugas dengan betul untuk mengekalkan kunci ini pada cakera dan memulihkannya apabila diperlukan.
Menyimpan Kunci Peribadi RSA
Untuk mencipta kepingan bait mewakili rsa.PrivateKey, gunakan fungsi berikut:
func x509.MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
Fungsi ini menyusun kunci persendirian menjadi kepingan bait mengikut piawai PKCS#1.
Menyimpan Kunci Awam RSA
Untuk rsa.PublicKey, tiada fungsi terbina dalam dalam pustaka standard Go to marshal kunci ke dalam kepingan bait. Walau bagaimanapun, amalan biasa untuk mengekodkan kunci persendirian termarshaled ke dalam fail PEM menggunakan kod berikut:
pemdata := pem.EncodeToMemory( &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key), }, )
Coretan kod ini membalut kunci persendirian termarshaled dalam blok PEM dan mengekodnya ke dalam format PEM kepingan bait.
Memuatkan RSA Persendirian dan Awam Kekunci
Untuk memuatkan kunci persendirian RSA daripada cakera atau memori, gunakan fungsi berikut:
func x509.ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err error)
Fungsi ini menghuraikan kepingan bait kunci persendirian yang dikodkan DER dan mengembalikan Objek rsa.PrivateKey.
Memandangkan kunci awam tidak mempunyai fungsi penghuraian sendiri, anda perlu mengekstrak kunci awam daripada kunci peribadi jika anda telah memuatkan kedua-duanya. Untuk mengekstrak kunci awam daripada kunci persendirian, gunakan kod berikut:
pub := &key.PublicKey
Kesimpulan
Panduan komprehensif ini menyediakan maklumat dan fungsi yang diperlukan untuk menyimpan dan memuatkan kunci peribadi dan awam RSA dalam Go, memastikan pengurusan dan kebolehcapaian yang betul bagi kunci ini untuk operasi kriptografi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan dan Memuatkan Kunci Peribadi dan Awam RSA dengan Selamat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!