2

Warning: openssl_get_publickey() [function.openssl-get-publickey]: Don't know how to get public key from this private key on line 5尝试从私钥获取公钥时出现错误。这是我的PHP代码:

<?php
$privatekeyorig = openssl_pkey_new();
openssl_pkey_export($privatekeyorig,$privatekey);
echo '<b>Private Key:</b> ' . $privatekey . '<br>';
$publickey = openssl_get_publickey($privatekeyorig);
echo '<b>Public Key:</b> ' . $publickey . '<br>';
?>

根据 PHP 手册,我这样做是正确的。有人发现错误吗?帮助将不胜感激!

4

2 回答 2

2

我的建议是使用phpseclib,一个纯 PHP RSA 实现。例如。

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
$rsa->loadKey('...');

$privatekey = $rsa->getPrivateKey();
$publickey = $rsa->getPublicKey();
?>
于 2012-06-06T21:04:18.237 回答
1

查看http://php.net/manual/en/function.openssl-pkey-new.php上的最后一条评论

[更新]从上面的评论:)它在我的系统上工作,为你提供一个文本公钥:

// Create the keypair
$res=openssl_pkey_new();

// Get private key
openssl_pkey_export($res, $privkey);

// Get public key
$pubkey=openssl_pkey_get_details($res);
$pubkey=$pubkey["key"];
于 2012-06-06T03:17:52.407 回答