Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menyahsulit Kekunci PKCS8 Disulitkan dalam Go: \"Tiada pengepala DEK-Info dalam blok\" Penyelesaian Ralat?

Cara Menyahsulit Kekunci PKCS8 Disulitkan dalam Go: \"Tiada pengepala DEK-Info dalam blok\" Penyelesaian Ralat?

Barbara Streisand
Barbara Streisandasal
2024-11-02 07:56:29985semak imbas

How to Decrypt Encrypted PKCS8 Keys in Go:

Pergi: "Tiada pengepala DEK-Info dalam blok" Ralat Semasa Menyahsulit Kekunci PKCS8 Disulitkan

Apabila cuba menyahsulit kunci persendirian PKCS8 yang disulitkan dalam Go, anda mungkin menghadapi mesej ralat yang menyatakan "x509: tiada pengepala DEK-Info dalam blok." Ralat ini menunjukkan bahawa blok yang disediakan tidak mengandungi pengepala DEK-Info yang diperlukan, yang penting untuk menyahsulit kunci.

Isunya terletak pada fakta bahawa pustaka Go standard tidak menyediakan fungsi asli untuk menyahsulit kunci PKCS8 yang disulitkan. Untuk menangani perkara ini, anda boleh menggunakan perpustakaan pihak ketiga atau kod tersuai.

Berikut ialah perpustakaan yang sesuai yang boleh mengendalikan fail PKCS8 yang disulitkan: https://github.com/youmark/pkcs8/blob/master/pkcs8. go#L103

Dengan memasukkan pakej pkcs8 ke dalam kod anda, anda boleh berjaya menyahsulit kunci peribadi PKCS8 yang disulitkan menggunakan coretan kod berikut:

<code class="go">import "github.com/youmark/pkcs8"

func DecryptPKCS8Key(key []byte, password string) ([]byte, error) {
    block, _ := pem.Decode(key)
    return pkcs8.Decrypt(block.Bytes, []byte(password))
}</code>

Coretan kod ini menggunakan fungsi Nyahsulit daripada pakej pkcs8 untuk menyahsulit kunci PKCS8 yang disulitkan. Parameter pertama ialah data kunci yang dikodkan, manakala parameter kedua ialah kata laluan yang digunakan untuk menyulitkan kunci.

Atas ialah kandungan terperinci Cara Menyahsulit Kekunci PKCS8 Disulitkan dalam Go: \"Tiada pengepala DEK-Info dalam blok\" Penyelesaian Ralat?. 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