암호화된 PKCS8 개인 키에 대한 "No DEK-Info Header in Block" 오류 해결
다음을 사용하여 암호화된 PKCS8 개인 키를 디코딩하려고 할 때 이동하면 "블록에 DEK-Info 헤더가 없습니다."라는 오류가 발생할 수 있습니다. 이는 키 디코딩 기능이 암호화된 PKCS8 개인 키를 처리할 수 없음을 나타냅니다.
제공된 OpenSSL 명령을 사용한 키 생성이 올바른 것으로 보입니다. 그러나 Go의 표준 라이브러리는 암호화된 PKCS8 개인 키의 암호 해독을 기본적으로 지원하지 않습니다.
해결 방법:
이 문제를 해결하려면 처리용으로 특별히 설계된 외부 라이브러리를 활용할 수 있습니다. PKCS8 키 암호 해독. 이러한 라이브러리의 예로는 GitHub에서 사용할 수 있는 "pkcs8" 라이브러리가 있습니다.
"pkcs8" 라이브러리를 사용하여 PKCS8 키를 해독하기 위한 다음 코드가 있다고 가정합니다.
<code class="go">import "github.com/youmark/pkcs8" func DecryptPKCS8(key []byte, password string) (*pkcs8.PrivateKey, error) { block, _ := pem.Decode(key) return pkcs8.Decrypt(block.Bytes, []byte(password)) }</code>
이 함수는 바이트 슬라이스 형태의 암호화된 PKCS8 키와 해독 비밀번호를 인수로 사용합니다. 그런 다음 암호화된 키 데이터가 포함된 PEM 블록의 디코딩을 시도합니다.
디코딩에 성공하면 함수는 "pkcs8" 라이브러리에서 Decrypt 함수를 호출하여 실제 암호 해독을 수행합니다. 그런 다음 해독된 키는 *pkcs8.PrivateKey 구조체로 반환됩니다.
이 라이브러리를 통합하고 DecryptPKCS8 함수를 사용하여 암호화된 PKCS8 키를 처리하면 "블록에 DEK-Info 헤더 없음" 오류를 해결할 수 있습니다.
위 내용은 Go에서 암호화된 PKCS8 개인 키를 해독하는 방법: \"No DEK-Info Header in Block\" 오류 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!