Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menyimpan dan Memuatkan Kunci Peribadi dan Awam RSA dengan Selamat dalam Go?

Bagaimanakah Saya Boleh Menyimpan dan Memuatkan Kunci Peribadi dan Awam RSA dengan Selamat dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-12 11:07:10239semak imbas

How Can I Securely Save and Load RSA Private and Public Keys in Go?

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!

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