You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Key Vault生成的Secp256k1公钥分量为43字符问题咨询

问题解答

你无需调整密钥创建操作,Azure返回的公钥分量也没有额外字符,该现象是编码格式差异导致的:

  • Azure Key Vault返回的EC密钥X、Y分量遵循JWK规范,采用Base64URL格式编码
  • 32字节的原始Secp256k1公钥分量经过Base64URL编码后,长度恰好为43字符,和你拿到的输出结果完全匹配

你只需要对返回的X、Y字符串做Base64URL解码,即可得到标准32字节的原始公钥分量,Go语言的处理示例如下:

import "encoding/base64"

// 在getKey函数中拿到X、Y后添加解码逻辑
rawX, err := base64.RawURLEncoding.DecodeString(*keyResp.Key.X)
if err != nil {
    fmt.Printf("decode X failed: %v\n", err)
    os.Exit(1)
}
rawY, err := base64.RawURLEncoding.DecodeString(*keyResp.Key.Y)
if err != nil {
    fmt.Printf("decode Y failed: %v\n", err)
    os.Exit(1)
}

// rawX和rawY均为32字节的原始公钥分量,可直接供后续业务逻辑使用
fmt.Printf("raw X length: %d\n", len(rawX)) // 输出32
fmt.Printf("raw Y length: %d\n", len(rawY)) // 输出32

内容的提问来源于stack exchange,提问作者Jaswinder Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:48:02