首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入字符串RSA公钥以在Go中使用RSA加密

导入字符串RSA公钥以在Go中使用RSA加密
EN

Stack Overflow用户
提问于 2017-11-19 18:22:45
回答 1查看 2.4K关注 0票数 4

如何从Go中的字符串中导入RSA公钥,以便将其用于加密数据?

我的程序应该做以下工作:

  • 接收以base64编码的公钥
  • 将此公钥从base64解码为字节
  • 导入该公钥,使其可由Go的RSA实现使用(问题在此阶段)
  • 用以下方式加密AES密钥: ciphertext, err := rsa.EncryptOAEP(sha256.New(), rand.Reader, publicKey, plaintextBytes, []byte(""))

提前谢谢你!

溶液

公钥必须使用密码/x 509包解码。

例如:

代码语言:javascript
复制
publicKeyInterface, err := x509.ParsePKIXPublicKey(publicKeyDER)
if err != nil {
    log.Println("Could not parse DER encoded public key (encryption key)")
    return []byte(""), err
}
publicKey, isRSAPublicKey := publicKeyInterface.(*rsa.PublicKey)
if !isRSAPublicKey {
    log.Println("Public key parsed is not an RSA public key")
    return []byte(""), err
}

然后,您可以使用publicKey和RSA进行加密。

EN

回答 1

Stack Overflow用户

发布于 2017-11-20 11:19:11

当您收到base64编码的密码时,您的解码如下:

代码语言:javascript
复制
base64.StdEncoding.DecodeString("FExEiYPgwrHHyO7DOwCXHNRvVF2S8xirXftuFWmJUzo=")

然后,您加密的字符串不能超过公共模数的长度减去散列长度的两倍,减2。有关示例和文档,请参阅文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47380374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档