Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyahsulit Kekunci Peribadi PKCS8 Disulitkan dalam Go dan Betulkan Ralat \"Tiada pengepala DEK-Info dalam blok\"?

Bagaimana untuk Menyahsulit Kekunci Peribadi PKCS8 Disulitkan dalam Go dan Betulkan Ralat \"Tiada pengepala DEK-Info dalam blok\"?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 09:36:02234semak imbas

How to Decrypt Encrypted PKCS8 Private Keys in Go and Fix the

Menyahsulit Kekunci Peribadi PKCS8 yang Disulitkan: Menyelesaikan Ralat "Tiada pengepala DEK-Info dalam blok"

Dalam percubaan untuk membaca PKCS8 yang disulitkan kunci peribadi dalam Pergi, anda mungkin menghadapi ralat "x509: tiada pengepala DEK-Info dalam blok." Ralat ini timbul daripada pengehadan yang wujud dalam pustaka standard Go, yang tidak mempunyai fungsi untuk menyahsulit kekunci PKCS8 yang disulitkan.

Menyelesaikan Masalah

Untuk memastikan anda tidak menjana kunci dengan salah, sahkan bahawa arahan OpenSSL anda adalah seperti berikut:

  1. Jana kunci persendirian:

    openssl genrsa -out file.pem -passout pass:file -aes256 1024
  2. Tukar kepada format PKCS8:

    openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem

Penyelesaian Alternatif

Walaupun perpustakaan standard Go tidak menyediakan sokongan langsung untuk menyahsulit kekunci PKCS8 yang disulitkan, anda boleh menggunakan luaran pakej seperti:

  • github.com/youmark/pkcs8

Pakej ini menawarkan fungsi yang direka khusus untuk menyahsulit kekunci PKCS8 yang disulitkan:

func DecryptPrivateKey(block *pem.Block, password []byte) (priv interface{}, err error)

Dengan menggunakan pakej ini, anda boleh mengatasi had pustaka standard Go dan berjaya menyahsulit kunci peribadi PKCS8 yang disulitkan.

Atas ialah kandungan terperinci Bagaimana untuk Menyahsulit Kekunci Peribadi PKCS8 Disulitkan dalam Go dan Betulkan Ralat \"Tiada pengepala DEK-Info dalam blok\"?. 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