openssl 命令 genrsa 生成 RSA 密钥。我们可以使用 crypto/rsa 包在 Go 中实现相同的功能。本文详细介绍了如何生成 RSA 密钥对并将其写入 Go 中的单独文件。
import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "io/ioutil" )
filename := "key" bitSize := 4096 // Generate RSA keypair key, err := rsa.GenerateKey(rand.Reader, bitSize)
pub := key.Public()
// Encode private key to PKCS#1 ASN.1 PEM keyPEM := pem.EncodeToMemory( &pem.Block{ Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key), }, ) // Encode public key to PKCS#1 ASN.1 PEM pubPEM := pem.EncodeToMemory( &pem.Block{ Type: "RSA PUBLIC KEY", Bytes: x509.MarshalPKCS1PublicKey(pub.(*rsa.PublicKey)), }, )
// Write private key to file if err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700); err != nil { panic(err) } // Write public key to file if err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755); err != nil { panic(err) }
按照上述步骤,您可以轻松生成 RSA 密钥对并将它们写入 Go 中的单独文件,类似于 openssl genrsa 命令。这个全面的指南为在 Go 应用程序中使用 RSA 密钥提供了坚实的基础。
以上是如何在Go中生成RSA密钥对并将它们写入单独的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!