我在这里有私钥:
-----BEGIN ENCRYPTED PRIVATE KEY-----
...<< private_key_bits' => 2048 >>...
-----END ENCRYPTED PRIVATE KEY-----
我想加密字符串,这是我的代码:
$rsa = Rsa::factory(array(
'public_key' => 'public_key_'.$username.'.pub',
'private_key' => 'private_key_'.$username.'.pem',
'pass_phrase' => $username.' '.date("Y/m/d h:i:s").'',
'binary_output' => false
));
$encrypt = $rsa->encrypt($content);
它返回错误:
Unable to load private key; openssl error:0906D06C
我在zend / crypt中看到然后尝试print_r参数,它是对的。密钥私有的名称,密码短语..是真的,然后我print_r openssl_pkey_get_private
结果:
public function __construct($pemString, $passPhrase = null)
{
$result = openssl_pkey_get_private($pemString, $passPhrase);
print_r($result);
die();
if (false === $result) {
throw new Exception\RuntimeException(
'Unable to load private key; openssl ' . openssl_error_string()
);
}
但openssl_pkey_get_private
返回null。我不知道我的私钥有什么问题。