> 백엔드 개발 > Golang > OpenSSL의 `openssl genrsa` 명령과 유사하게 Go에서 RSA 키 쌍을 생성하려면 어떻게 해야 합니까?

OpenSSL의 `openssl genrsa` 명령과 유사하게 Go에서 RSA 키 쌍을 생성하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-14 15:49:14
원래의
841명이 탐색했습니다.

How Can I Generate RSA Key Pairs in Go, Similar to OpenSSL's `openssl genrsa` Command?

Go를 사용하여 Openssl과 동일한 방식으로 RSA 키 생성

OpenSSL 명령 openssl genrsa는 RSA 키 쌍을 생성하여 한 파일에는 개인 키가 있고 다른 파일에는 공개 키가 있습니다. Go에서 이 기능을 구현하려면 다음 단계를 따르세요.

  1. RSA 키 쌍 생성:
import "crypto/rand"

key, err := rsa.GenerateKey(rand.Reader, bitSize)
if err != nil {
    panic(err)
}
로그인 후 복사
  1. 공개 추출 키:
import "crypto/rsa"

pub := key.Public()
로그인 후 복사
  1. 키를 PEM 형식으로 인코딩합니다.
import (
    "encoding/pem"
    "crypto/x509"
)

keyPEM := pem.EncodeToMemory(
    &pem.Block{
        Type:  "RSA PRIVATE KEY",
        Bytes: x509.MarshalPKCS1PrivateKey(key),
    },
)

pubPEM := pem.EncodeToMemory(
    &pem.Block{
        Type:  "RSA PUBLIC KEY",
        Bytes: x509.MarshalPKCS1PublicKey(pub.(*rsa.PublicKey)),
    },
)
로그인 후 복사
  1. PEM으로 인코딩된 키를 다음 위치에 씁니다. 파일:
import "io/ioutil"

err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700)
err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755)
로그인 후 복사

이 코드는 각각 개인 및 공개 RSA 키를 포함하는 filename.rsa 및 filename.rsa.pub라는 두 개의 파일을 생성합니다. 키는 PEM 형식이므로 쉽게 가져와서 다른 애플리케이션에서 사용할 수 있습니다.

위 내용은 OpenSSL의 `openssl genrsa` 명령과 유사하게 Go에서 RSA 키 쌍을 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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