sla*_*mer 8 php openssl rsa public-key
生成公钥然后用函数openssl_pkey_get_public读取它- $ publicKeyResource = bool(false)和消息: 错误:0906D06C:PEM例程:PEM_read_bio:无起始行
$privateKey = openssl_pkey_new(array('private_key_bits' => 2048, 'private_key_type' => OPENSSL_KEYTYPE_RSA));
$keyDetails = openssl_pkey_get_details($privateKey);
$publicKeyResource = openssl_pkey_get_public($keyDetails['key']);
Run Code Online (Sandbox Code Playgroud)
怎么了?
PS
privateKey =
array(3) {
["bits"]=>int(2048)
["key"]=>
string(451) "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApo5lpSuSQmAOXfqAmexj
IzjdGnd1X1gCKj5ko2DHgcR4XBlj1hbFNs1pzXx+R/UvLXTeF7dNQ+9AgXjEeRa6
71VbNxrUgvb/PHjEANwce7xBsnbu+dcSazyNHzx4ahWyEF4f3HyaJkGrT/Dgzcut
DO+yFAH9u8Hx26cj/8kyrtIHxazemnD+IDHRa3zOjKDmTfoDRKtOMTPVgFAsYBXn
tKcLyamCSBgpwfQwKfUUcYhfY1xD9UMhVXabSSiNQOiTMuOIZUHueO8UCp/tdK6a
LprUDBQ/tVmiV7ZMeZYMjh6XnK7higJ3WZp8RmD4PPeKbtG6j2AuGpbF/ddzD62T
XwIDAQAB
-----END PUBLIC KEY-----
"
["type"]=>
int(0)
}
Run Code Online (Sandbox Code Playgroud)
与我在PHP + OpenSSL中给出的答案相同:错误返回,但结果正确:这显然是由openssl_pkey_get_public()引起的,它需要一个包含公钥而不是公钥的证书 - 它似乎加载公钥但仍然导致此错误.看那里的细节.
小智 2
使用 phpseclib 的 Crypt_RSA 可能会更轻松。例如。
创建密钥(2048));回显 $publickey; ?>更多信息:
http://phpseclib.sourceforge.net/
| 归档时间: |
|
| 查看次数: |
21171 次 |
| 最近记录: |