在PHP中,你可以使用openssl_pkey_new
和openssl_pkey_export
函数来创建一个密钥对并将其导出为PEM格式。以下是一个简单的示例:
<?php
// 生成RSA密钥对
$privateKey = openssl_pkey_new([
"digest_alg" => "sha256",
"private_key_bits" => 2048,
]);
// 导出私钥为PEM格式
$privateKeyPem = openssl_pkey_export($privateKey, $privateKeyPem, null, [
"openssl_key_algorithm" => "RSA",
"openssl_key_type" => "private",
]);
if ($privateKeyPem === false) {
die("无法生成私钥\n");
}
echo "私钥:\n" . $privateKeyPem . "\n";
// 导出公钥为PEM格式
$publicKeyPem = openssl_pkey_export($privateKey, $publicKeyPem, null, [
"openssl_key_algorithm" => "RSA",
"openssl_key_type" => "public",
]);
if ($publicKeyPem === false) {
die("无法生成公钥\n");
}
echo "公钥:\n" . $publicKeyPem . "\n";
?>
这个示例将生成一个2048位的RSA密钥对,并将私钥和公钥分别导出为PEM格式的字符串。你可以将这些PEM格式的密钥文件保存到磁盘上,以便在其他地方使用。
请注意,这个示例仅用于演示目的。在实际应用中,你可能需要考虑更多的安全因素,例如密钥管理、加密和解密等。