Openssl 명령 이해
제공된 OpenSSL 명령은 RSA 키를 생성합니다. 개인 키와 공개 키를 페어링하고 별도의 파일에 저장합니다. 두 가지 인수를 사용합니다.
구현 Go
Go에서 이 기능을 복제하려면 다음 단계를 수행해야 합니다.
Go 코드:
package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "fmt" "io/ioutil" ) func main() { // Define filename and bit size filename := "key" bitSize := 4096 // Generate RSA key key, err := rsa.GenerateKey(rand.Reader, bitSize) if err != nil { panic(err) } // Extract public key pub := key.Public() // Convert to PKCS#1 DER format 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)), }, ) // Write keys to files err = ioutil.WriteFile(filename+".rsa", keyPEM, 0700) if err != nil { panic(err) } err = ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755) if err != nil { panic(err) } fmt.Println("RSA key pair generated and written to files.") }
출력:
프로그램은 다음을 수행합니다. 다음 내용으로 두 개의 파일을 만듭니다.
key.rsa:
-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----
key.rsa.pub:
-----BEGIN RSA PUBLIC KEY----- ... -----END RSA PUBLIC KEY-----
위 내용은 Go에서 RSA 키 쌍을 생성하는 방법: OpenSSL과 비교?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!