Go에서 RSA 공개 및 개인 키 저장 및 로드
질문:
어떻게 할 수 있나요? 나는 crypto/rsa 패키지를 사용하여 디스크에서 RSA 공개 및 개인 키를 안전하게 유지하고 로드합니다. 가겠습니까?
답변:
RSA 개인 키를 저장하려면 crypto/x509 패키지의 MarshalPKCS1PrivateKey 기능을 사용하는 것이 좋습니다.
func MarshalPKCS1PrivateKey(key *rsa.PrivateKey) []byte
이 기능은 개인 키를 DER(Distinguished Encoding Rules) 형식으로 변환합니다. 바이트 배열로 저장됩니다. DER에서 개인 키를 로드하려면 ParsePKCS1PrivateKey 함수를 사용하십시오.
func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err error)
공개 키의 경우 MarshalPKCS1PublicKey 및 ParsePKCS1PublicKey 함수는 비슷한 용도로 사용됩니다.
표준 형식에 대한 PEM 인코딩 :
대신 DER로 인코딩된 바이너리 데이터를 직접 저장하는 경우에는 개인 키를 PEM(Privacy-Enhanced Mail) 파일로 인코딩하는 것이 일반적입니다. PEM은 Base64를 사용하여 이진 데이터를 인코딩하고 파일에 머리글과 바닥글을 추가합니다. 개인 키를 인코딩하려면 pem.EncodeToMemory 함수를 사용하세요.
pemdata := pem.EncodeToMemory( &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key), }, )
PEM 인코딩은 키 교환을 위한 표준화된 형식을 제공하고 처리를 단순화합니다.
위 내용은 Go에서 RSA 키를 안전하게 저장하고 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!