我用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;
}
我需要使用带有RSACryptoServiceProvider的PEM文件。
那么,如何将PEM公共和私有PEM转换为XML?
使用http://phpseclib.sourceforge.net/:
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
$rsa->loadKey('...');
echo $rsa->getPrivateKey(CRYPT_RSA_PRIVATE_FORMAT_XML);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句