gpt4 book ai didi

go - 如何在golang中使用N=和E=解析公钥?

转载 作者:行者123 更新时间:2023-12-01 19:43:42 31 4
gpt4 key购买 nike

我有一个 mbedtls-generated RSA 公钥,在我需要在 Golang 中解析的嵌入式设备上创建。我的 key 不是 pem 格式,只包含模数和指数,如下所示:

N = 9C99AB1DC1462220A628D19BB6C6627FDCCC208FD9F93722F44515F5086F3312D3EFE256A11789F1F7F9A114B879A2DE0005FAE99A68321DD821CE589D1F6E0D
E = 010001

我确信我可以自己解析它,但是由于您永远不应该实现自己的加密方法并且 Golang 具有非常完整的功能套件,我可以做些什么来创建 rsa.PublicKey从这个?

我可以生成一个 PEM key ,但这似乎是一个很大的浪费

谢谢

最佳答案

解析您自己的输入没有任何问题,我不会称之为“重新实现加密原语”。

要获取公钥,只需将模数解析为一个大整数即可:

bigN.SetString("9C99AB1DC1462220A628D...", 16)

然后创建您自己的 rsa.PublicKey

playground 中的完整示例:

N := "9C99AB1DC1462220A628D19BB6C6627FDCCC208FD9F93722F44515F5086F3312D3EFE256A11789F1F7F9A114B879A2DE0005FAE99A68321DD821CE589D1F6E0D"
E := 010001
bigN := new(big.Int)
_, ok := bigN.SetString(N, 16)
if !ok {
panic("failed to parse")
}
pub := rsa.PublicKey{
N: bigN,
E: E,
}
fmt.Println(pub)

关于go - 如何在golang中使用N=和E=解析公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61475522/

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