보안 JWT 서명을 위해 파일에서 RSA 키 로드
JWT에 서명하려면 인증 및 무결성 확인을 위해 RSA 개인 키를 사용해야 하는 경우가 많습니다. 이러한 키를 활용하려면 파일에서 키를 추출하는 프로세스를 이해하는 것이 중요합니다.
PEM 인코딩 RSA 개인 키
RSA 개인 저장을 위한 가장 일반적인 형식 키는 "-----BEGIN RSA PRIVATE KEY-----" 및 "-----END RSA PRIVATE KEY-----" 머리글과 바닥글로 표시되는 PEM 인코딩입니다. PEM 인코딩 키를 로드하려면 다음 단계를 사용할 수 있습니다.
import ( "crypto/x509" "encoding/pem" ) func LoadPEMKey(file string) (*x509.PrivateKey, error) { pemBytes, err := os.ReadFile(file) if err != nil { return nil, err } block, _ := pem.Decode(pemBytes) return x509.ParsePKCS1PrivateKey(block.Bytes) }
PKCS#8 인코딩 RSA 개인 키
PKCS#8은 또 다른 인기 있는 형식입니다. RSA 개인 키를 저장하기 위한 것입니다. 키와 인증서를 단일 파일에 저장하기 위해 PKCS#12 형식과 함께 사용되는 경우가 많습니다. PKCS#8로 인코딩된 키를 로드하려면 다음 단계를 따르세요.
import ( "crypto/rsa" "crypto/x509" "encoding/pem" ) func LoadPKCS8Key(file string) (*rsa.PrivateKey, error) { pemBytes, err := os.ReadFile(file) if err != nil { return nil, err } block, _ := pem.Decode(pemBytes) return x509.ParsePKCS8PrivateKey(block.Bytes) }
사용 예
RSA 개인 키를 구조에 로드한 후에는 이를 사용하여 JWT에 서명하고 서명을 확인할 수 있습니다. 예를 들면 다음과 같습니다.
import ( "crypto/rsa" "crypto/x509" "encoding/json" "github.com/golang-jwt/jwt/v4" ) func SignJWT(keyFile string, claims map[string]interface{}) (string, error) { key, err := LoadPEMKey(keyFile) if err != nil { return "", err } token := jwt.NewWithClaims(jwt.SigningMethodRS512, jwt.MapClaims(claims)) return token.SignedString(key) }
이러한 기술을 활용하면 JWT 인증 및 권한 부여 목적으로 파일에 저장된 RSA 개인 키를 효과적으로 활용할 수 있습니다.
위 내용은 보안 JWT 서명을 위해 파일에서 RSA 키를 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!