如何在php中使用openssl以适当的格式提取公钥?

如何在php中使用openssl以适当的格式提取公钥?,php,openssl,ssl-certificate,public-key,Php,Openssl,Ssl Certificate,Public Key,我曾多次尝试使用不同的方法,在php中使用openssl以可显示格式提取公钥。 例如 打印(openssl\u pkey\u get\u详细信息(openssl\u csr\u get\u公钥(\path to csr)) 还有更多。但我能得到的只是这样的东西: -----开始公钥----- MIGFMA0GCSQGSIB3DQEBAQA4NADCBIQKBGQCLNAMI19DPCxLyaaZHv27R2V GDQBKZHIAYADFCWJYSTRAU8HK1YG76GFHgaysiA6Y7C

我曾多次尝试使用不同的方法,在php中使用openssl以可显示格式提取公钥。 例如

打印(openssl\u pkey\u get\u详细信息(openssl\u csr\u get\u公钥(\path to csr))

还有更多。但我能得到的只是这样的东西:

-----开始公钥----- MIGFMA0GCSQGSIB3DQEBAQA4NADCBIQKBGQCLNAMI19DPCxLyaaZHv27R2V GDQBKZHIAYADFCWJYSTRAU8HK1YG76GFHgaysiA6Y7CEK4UH5Fv PE6Nj/S9QAKCVPZZDJASDYMJ8BGYVVVVBRELTOMNVTC eNaH93Dm+OA4EQIDAQAB

-----结束公钥------

如何按以下格式提取:

95 ae 9a 4e db f1 6d 15 55 9f 86 52 28 54 21 3f 88 1b 21 81 2a 01 e3 35 dd 21 51 44 f4 18 bf 85 fb f0 6a 9a 9c 15 7f 46 83 b8 1e 05 b7 b9 1a 9d fd 58 0b fa 45 01 f2 3b bc 1b f6 a3 20 7b 96 3e f7 5d d6 c2 a7 56 29 02 94 ba 0c 29 da 51


谢谢。

浏览器列出的公钥只是模数的十六进制编码。在由
openssl\u pkey\u get\u details
返回的数据结构中,这由
n
表示。(如果您想知道原因,请查看算法。)要在PHP中获得它,只需执行以下操作:

$pkey_details = openssl_pkey_get_details(openssl_pkey_get_public(file_get_contents("test.pem")));
echo bin2hex($pkey_details["rsa"]["n"]);

那个十六进制转储是什么格式的?老实说,我不确定格式的名称。但我是通过从浏览器查看证书详细信息得到的。
$pkey_details = openssl_pkey_get_details(openssl_pkey_get_public(file_get_contents("test.pem")));
echo bin2hex($pkey_details["rsa"]["n"]);