Go에서 암호화된 PKCS8 개인 키를 해독하는 방법: \'No DEK-Info Header in Block\' 오류 해결

Barbara Streisand
풀어 주다: 2024-10-31 10:51:29
원래의
554명이 탐색했습니다.

How to Decrypt Encrypted PKCS8 Private Keys in Go: Solving the

암호화된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿