Menyimpan Kunci Peribadi ECDSA dalam Go
Apabila menjana pasangan kunci peribadi/awam ECDSA menggunakan ecdsa.GenerateKey(), menyimpan kunci persendirian dengan selamat adalah penting untuk mengekalkan integriti utama dan keselamatan data. Go tidak menyediakan kaedah langsung untuk menyusun kunci persendirian seperti yang dilakukan untuk kunci awam dengan eliptik.Marshal().
Pendekatan Disyorkan
Pendekatan yang disyorkan untuk menyimpan ECDSA kunci peribadi dalam Go adalah untuk menggunakan proses pengekodan berbilang langkah yang melibatkan perkara berikut komponen:
Contoh Pengekodan dan Penyahkodan
Sampel kod berikut menunjukkan pengekodan dan penyahkodan kunci ECDSA dalam Go menggunakan pendekatan yang disyorkan:
func encode(privateKey *ecdsa.PrivateKey, publicKey *ecdsa.PublicKey) (string, string) { x509Encoded, _ := x509.MarshalECPrivateKey(privateKey) pemEncoded := pem.EncodeToMemory(&pem.Block{Type: "PRIVATE KEY", Bytes: x509Encoded}) x509EncodedPub, _ := x509.MarshalPKIXPublicKey(publicKey) pemEncodedPub := pem.EncodeToMemory(&pem.Block{Type: "PUBLIC KEY", Bytes: x509EncodedPub}) return string(pemEncoded), string(pemEncodedPub) } func decode(pemEncoded string, pemEncodedPub string) (*ecdsa.PrivateKey, *ecdsa.PublicKey) { block, _ := pem.Decode([]byte(pemEncoded)) x509Encoded := block.Bytes privateKey, _ := x509.ParseECPrivateKey(x509Encoded) blockPub, _ := pem.Decode([]byte(pemEncodedPub)) x509EncodedPub := blockPub.Bytes genericPublicKey, _ := x509.ParsePKIXPublicKey(x509EncodedPub) publicKey := genericPublicKey.(*ecdsa.PublicKey) return privateKey, publicKey }
Pendekatan ini memastikan penyimpanan selamat dan pengambilan kunci peribadi ECDSA dengan menggunakan teknik pengekodan standard industri dan format fail.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Kunci Peribadi ECDSA dengan Selamat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!