【发布时间】:2014-12-20 12:04:57
【问题描述】:
我用 PHP 生成 RSA 公钥和私钥:
function genKeys($pkey, $skey)
{
$pkGenerate = openssl_pkey_new(array(
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA
));
$pkGeneratePrivate = null;
openssl_pkey_export($pkGenerate, $pkGeneratePrivate);
$pkGenerateDetails = openssl_pkey_get_details($pkGenerate);
$pkGeneratePublic = $pkGenerateDetails['key'];
openssl_pkey_free($pkGenerate);
$pkImport = openssl_pkey_get_private($pkGeneratePrivate);
$pkImportDetails = openssl_pkey_get_details($pkImport);
$pkImportPublic = $pkImportDetails['key'];
openssl_pkey_free($pkImport);
$result = (bool) strcmp($pkGeneratePublic, $pkImportPublic);
if ($result) {
file_put_contents($pkey, $pkGeneratePrivate);
file_put_contents($skey, $pkGeneratePublic);
}
return $result;
}
我需要将 PEM 文件与 RSACryptoServiceProvider 一起使用。
那么,如何将 PEM 公共和私有转换为 XML?
【问题讨论】:
-
您能解释一下在您的问题中使用
strcmp的原因是什么吗?当我运行你的代码时,$pkGeneratePrivate和$pkGeneratePublic是相同的。