登录
首页 >  Golang >  Go问答

在golang中如何将*PrivateKey类型的变量存储到文件中?

来源:stackoverflow

时间:2024-03-08 12:00:20 101浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《在golang中如何将*PrivateKey类型的变量存储到文件中?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我已经在 go 中生成了 RSA 私钥(使用 crypto/rsa)和相应的公钥。现在我想将它们写入两个文件(每个文件写入一个文件),但 WriteString 和 Write 函数特定于字符串和 []byte 变量。像 String(privateKey) 这样的指令也会生成错误。我如何将这些密钥写入文件?


正确答案


您需要 pem.Encode。示例请参见 maplepie/rsa#savePrivateKey()

func (p *pemkey) saveprivatekey(privatekey *rsa.privatekey, filename string) error {
    raw := x509.marshalpkcs1privatekey(privatekey)
    block := &pem.block{
        type:  "rsa private key",
        bytes: raw,
    }
    file, err := os.create(filename)
    if err != nil {
        return err
    }
    err = pem.encode(file, block)
    if err != nil {
        return err
    }
    return nil
}

公钥的想法相同:

func (p *PemKey) savePublicKey(publicKey *rsa.PublicKey, filename string) error {
    raw, err := x509.MarshalPKIXPublicKey(publicKey)
    if err != nil {
        return err
    }
    block := &pem.Block{
        Type:  "PUBLIC KEY",
        Bytes: raw,
    }
    file, err := os.Create(filename)
    if err != nil {
        return err
    }
    err = pem.Encode(file, block)
    if err != nil {
        return err
    }
    return nil
}

今天关于《在golang中如何将*PrivateKey类型的变量存储到文件中?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>