gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:47:14 24 4
gpt4 key购买 nike

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

我的程序应该执行以下操作:

  • 收到以 base64 编码的公钥
  • 将此公钥从 base64 解码为字节
  • 导入该公钥,以便它可供 Go 的 RSA 实现使用(问题出在这个阶段)
  • 使用以下方法加密 AES key :

    密文,err := rsa.EncryptOAEP(sha256.New(), rand.Reader, publicKey, plaintextBytes, []byte(""))

提前致谢!

解决方案:

公钥必须使用 crypto/x509 包进行解码。

例如:

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
}

然后您可以使用带有 RSA 的 publicKey 进行加密。

最佳答案

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

base64.StdEncoding.DecodeString("FExEiYPgwrHHyO7DOwCXHNRvVF2S8xirXftuFWmJUzo=")

然后你加密的字符串的长度不能超过公共(public)模数的长度减去哈希长度的两倍,减去2。见docs示例和文档。

关于go - 导入字符串 RSA 公钥以在 Go 中使用 RSA 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47380374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com