为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang中使用密码创建rsa私钥

如何在golang中使用密码创建rsa私钥

Go
心有法竹 2022-01-10 17:17:04
如何在 golang 中使用密码创建 rsa 私钥?在golang,我是新手。我阅读了加密包的文档。没有找到答案。谢谢!
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

第一步,生成私钥。第二步,将其转换为 PEM 格式。第三步,加密PEM。


一切都可以使用Golang的标准库来完成,非常完整。代码并不难,所以我把它放在这里。它所要做的就是知道要使用哪些功能。


import (

    "crypto/rand"

    "crypto/rsa"

    "crypto/x509"

    "encoding/pem"

)


func PrivateKeyToEncryptedPEM(bits int, pwd string) ([]byte, error) {

    // Generate the key of length bits

    key, err := rsa.GenerateKey(rand.Reader, bits)

    if err != nil {

        return nil, err

    }


    // Convert it to pem

    block := &pem.Block{

        Type:  "RSA PRIVATE KEY",

        Bytes: x509.MarshalPKCS1PrivateKey(key),

    }


    // Encrypt the pem

    if pwd != "" {

        block, err = x509.EncryptPEMBlock(rand.Reader, block.Type, block.Bytes, []byte(pwd), x509.PEMCipherAES256)

        if err != nil {

            return nil, err

        }

    }


    return pem.EncodeToMemory(block), nil

}


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号