Rumah >pembangunan bahagian belakang >Golang >Cara Menyahsulit Kunci Peribadi PKCS8 yang Disulitkan dalam Go: Menyelesaikan Ralat \'No DEK-Info Header\'

Cara Menyahsulit Kunci Peribadi PKCS8 yang Disulitkan dalam Go: Menyelesaikan Ralat \'No DEK-Info Header\'

Susan Sarandon
Susan Sarandonasal
2024-10-31 08:25:17287semak imbas

How to Decrypt Encrypted PKCS8 Private Keys in Go: Solving the 'No DEK-Info Header' Error

"Menyahsulit Kekunci Peribadi PKCS8 yang Disulitkan dalam Go: Menyelesaikan Isu 'No DEK-Info Header'"

Dalam kriptografi, mengamankan kunci peribadi adalah penting. Satu format biasa untuk menyimpan kunci peribadi yang disulitkan ialah PKCS8. Apabila cuba membaca kekunci sedemikian dalam Go, pengguna mungkin menghadapi ralat yang menyatakan "tiada pengepala DEK-Info dalam blok." Begini cara untuk menyelesaikan isu ini.

Pustaka Go standard tidak mempunyai fungsi terbina dalam untuk menyahsulit kekunci PKCS8. Untuk menangani perkara ini, seseorang boleh menggunakan perpustakaan pihak ketiga seperti pakej "pkcs8" (https://github.com/youmark/pkcs8/blob/master/pkcs8.go#L103).

Menggunakan dengan menyediakan pakej "pkcs8", menyahsulit kunci PKCS8 yang disulitkan menjadi mudah. Berikut ialah coretan kod yang menunjukkan penggunaannya:

<code class="go">import (
    "github.com/youmark/pkcs8"
    "golang.org/x/crypto/pkcs12"
)

func DecryptKey(keyBytes []byte, password string) (*pkcs12.PrivateKey, error) {
    block, _ := pem.Decode(keyBytes)
    return pkcs8.DecryptPrivateKey(block.Bytes, []byte(password))
}</code>

Dalam kod ini, fungsi DecryptPrivateKey bagi pakej "pkcs8" digunakan untuk menyahsulit kunci menggunakan kata laluan yang disediakan. Kunci yang dinyahsulit kemudian dikembalikan sebagai contoh PrivateKey.

Dengan menyepadukan penyelesaian ini, pembangun boleh membaca dan menyahsulit kunci persendirian PKCS8 yang disulitkan dengan cekap dalam Go, memastikan akses selamat kepada data yang disulitkan.

Atas ialah kandungan terperinci Cara Menyahsulit Kunci Peribadi PKCS8 yang Disulitkan dalam Go: Menyelesaikan Ralat 'No DEK-Info Header'. 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