1

我试图弄清楚我收到的公钥的大小。如何从密钥中确定大小?我在文档中找不到简单的方法。

我拥有的是公钥本身,我收到的是这样的:

cert = OpenSSL::X509::Certificate.new(sock.peer_cert)
pkey = cert.public_key

公钥采用 PEM 格式。所以你有开始和结束线,中间是实际的键。现在密钥本身是 base64 编码的。如果我解码该字符串并计算字节数,我会得到一个大小。这个大小包括一些额外的东西,比如指数和模数(还有更多吗?)。我需要知道确定公钥的位是多少字节模数和指数(如果有更多,那么也是如此)占用。

4

1 回答 1

3
key_length_in_bits = pkey.n.num_bytes * 8

引用维基百科

[...] n 用作公钥和私钥的模数。它的长度,通常以位表示,是密钥长度。[...]

于 2012-12-18T12:20:29.877 回答