【发布时间】:2016-06-24 15:48:35
【问题描述】:
对于 PEM 私有证书,我假设您需要这样的字符串:
-----BEGIN PRIVATE KEY-----
YzNhYjhmZjEzNzIwZThhZDkwNDdkZDM5NDY2YjNjODk3NGU1OTJjMmZhMzgzZDRhMzk2MDcxNGNhZWYwYzRmMg==
-----END PRIVATE KEY-----
所以我做的是:
$privateKey = '-----BEGIN PRIVATE KEY-----';
$privateKey .='\n'.base64_encodehash(('sha256','foobar'));
$privateKey .='\n-----END PRIVATE KEY-----';
但是 openssl_pkey_get_private($privateKey) 返回 false 并且不是有效资源。我假设 PEM 只是 base64 字符串。我做错了什么? (我通过谷歌找到了这个:http://www.cryptosys.net/pki/manpki/pki_pemstring.html)
【问题讨论】:
-
尝试使用openssl_pkey_export。
-
这是什么:
$privateKey .='\n'.base64_encodehash(('sha256','foobar'));它的私钥是什么,您要将其加载到什么中?此外,行长也有限制。 OpenSSL 强制执行早期 RFC 之一的长度。查看早期的邮件和隐私增强邮件 RFC。 -
供 PHP 加密字符串。是否有描述 PEM 格式的网站?