我用 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 public 和 private 转换为 XML?
最佳答案
使用 http://phpseclib.sourceforge.net/ :
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
$rsa->loadKey('...');
echo $rsa->getPrivateKey(CRYPT_RSA_PRIVATE_FORMAT_XML);
关于c# - 将 pem rsa key 转换为 C# RSACryptoServiceProvider.FromXmlString 的 xml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27580063/