使用Go 產生RSA 金鑰:複製Openssl genrsa
OpenSSL RSApsl genrsa -out $1.rsa $將它們匯出到兩個單獨的文件,$1.rsa 用於私鑰, $1.rsa.pub 用於公鑰。在Go 中,此過程涉及:
以下程式碼示範了此過程:
package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "io/ioutil" ) func main() { filename := "key" bitSize := 4096 key, err := rsa.GenerateKey(rand.Reader, bitSize) if err != nil { panic(err) } pub := key.Public() 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)), }, ) if err := ioutil.WriteFile(filename+".rsa", keyPEM, 0700); err != nil { panic(err) } if err := ioutil.WriteFile(filename+".rsa.pub", pubPEM, 0755); err != nil { panic(err) } }
此程式碼產生私鑰檔案.rsa 和公鑰文件key.rsa.pub。這些文件的內容類似於 OpenSSL 命令的輸出。
以上是如何在 Go 中產生 RSA 金鑰對,模仿 OpenSSL 的「genrsa」指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!