X.509证书中的公钥以Base64格式表示

12

我正在尝试查找我正在处理的证书的base64公钥。我在证书的详细选项卡中找到的公钥不是base64格式的,我被要求提供base64公钥。

有没有办法获取公钥的base64版本?是否可以通过从证书中获取公钥并将其加密为base64来完成?例如,以下是我为证书找到的公钥:

" 30 82 01 0a 02 82 01 01 00 bc 39 25 06 5d 99 a4 05 5f e7 fc 59 1f 28 b5 48 d2 0d 2e ea aa eb ed 74 ef c9 2f 90 f8 ad 96 80 24 0f c2 dc 71 58 ea 3e fa 5c c9 29 87 51 7c cb 54 28 7c f9 10 15 b0 ac 8f eb 9e d3 d7 70 35 93 8a c7 1f 45 97 e3 c8 0b 72 a1 65 79 cf 74 6c 87 d9 eb 7d a0 b9 0e 4b 45 3d 81 f0 18 6e 9f 97 11 54 cb d8 e2 35 1a 4b e7 4d bf 68 1d ad 4e ca 57 25 9e 2f f7 f8 44 6f c2 0c 78 d8 19 ef 22 5a 9f 78 9f 17 1a b8 c0 72 0f 51 5c 21 6f c9 1e 80 de 7c 25 47 d0 28 01 2a 94 6e 34 39 1f 42 39 be 5f 0e c2 7c b4 fa a5 b9 05 4e 9c 45 75 63 a3 87 c3 e5 dd 54 35 85 d4 8d c2 5f da 6f 86 12 cf b3 8b 65 23 1d 34 43 c5 2e b1 49 56 56 25 93 f7 09 bf 9e 48 21 91 6a de 27 9e 6d 38 2f f5 f4 93 23 46 e8 41 b4 21 b4 02 50 79 71 48 72 0f 57 46 a0 20 c0 19 02 f9 d4 76 02 2d 85 fd 79 cd 70 fc 41 8b 02 03 01 00 01 "

我该如何将此转换为base64?感谢您的所有帮助!

2个回答

20

我假设你使用的是Windows操作系统。

我所采取的方法是安装证书。打开证书(从mmc或者直接打开),打开需要的证书。

在详细信息选项卡中,有一个“复制到文件”的选项。按下“下一步”直到出现导出文件格式的选项。

选择Base-64编码的X.509(.cer)。保存到桌面。

如果你使用记事本打开这个文件,会在----BEGIN CERTIFICATE----和-----END CERTIFICATE------之间显示base64编码的公钥。

编辑:

我将这个base64字符串保存下来,然后在代码中进行转换以获得实际的证书。这非常容易。

var base64Cert = // read from Db or somewhere
var base64EncodedStr = Encoding.Unicode.GetString(base64Cert);
var cert = new X509Certificate2(Convert.FromBase64String(base64EncodedStr), "password", X509KeyStorageFlags.PersistKeySet);
if(cert != null)
{
    // use certificate
}

这条消息不应该是证书和公钥信息的组合吗? - user2220871
您使用证书的目的是什么?如果我们能够缩小范围,可能会更容易给出建议。 - Peter Lea

1
你可以使用 ASN.1编辑器。它有一个很好的数据转换器,允许你从HEX、BASE64、PEM转换到任何一种格式。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接