美文网首页Golang语言社区
golang 生成RSA公钥和私钥文件

golang 生成RSA公钥和私钥文件

作者: 吃猫的鱼0 | 来源:发表于2018-01-04 11:04 被阅读20次
    import (
    "crypto/rand"
    "crypto/rsa"
    "crypto/x509"
    "encoding/pem"
    "os"
    )
    
    func main() {
        //rsa 密钥文件产生
        GenRsaKey(1024)
    }
    //RSA公钥私钥产生
    func GenRsaKey(bits int) error {
        // 生成私钥文件
        privateKey, err := rsa.GenerateKey(rand.Reader, bits)
        if err != nil {
            return err
        }
        derStream := x509.MarshalPKCS1PrivateKey(privateKey)
        block := &pem.Block{
            Type:  "RSA PRIVATE KEY",
            Bytes: derStream,
        }
        file, err := os.Create("private.pem")
        if err != nil {
            return err
        }
        err = pem.Encode(file, block)
        if err != nil {
            return err
        }
        // 生成公钥文件
        publicKey := &privateKey.PublicKey
        derPkix, err := x509.MarshalPKIXPublicKey(publicKey)
        if err != nil {
            return err
        }
        block = &pem.Block{
            Type:  "PUBLIC KEY",
            Bytes: derPkix,
        }
        file, err = os.Create("public.pem")
        if err != nil {
            return err
        }
        err = pem.Encode(file, block)
        if err != nil {
            return err
        }
        return nil
    }

    相关文章

      网友评论

        本文标题:golang 生成RSA公钥和私钥文件

        本文链接:https://www.haomeiwen.com/subject/nxxrnxtx.html