php使用openssl生成公鑰私鑰

成文的博客發表於2024-03-14

1、確保你的 PHP 環境已經啟用了 OpenSSL 擴充套件

    $config = array(
        "digest_alg" => "sha1",
        "private_key_bits" => 1024,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
        "config" => 'C:\phpstudy_pro\Extensions\Apache2.4.39\conf\openssl.cnf',
    );
    // 建立一個新的私鑰和公鑰對
    $res = openssl_pkey_new($config);
    // 檢查是否成功生成金鑰對
    if ($res === false) {
        die("無法生成金鑰對:" . openssl_error_string());
    }

    // 提取私鑰
    openssl_pkey_export($res, $privateKey, NULL, $config); // <-- CONFIG ARRAY

    // 生成公鑰
    $publicKey = openssl_pkey_get_details($res);
    $publicKey = $publicKey["key"];
    echo "私鑰:<br/>" . $privateKey . "<br/>";
    echo "公鑰:<br/>" . $publicKey . "<br/>";

    // 釋放資源
    openssl_free_key($res);

2、使用 OpenSSL 命令生成 公鑰和私鑰

1. 生成 1024 位 RSA 私鑰
  openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa\_keygen\_bits:1024
2. 從私鑰中提取公鑰
 openssl rsa -pubout -in private_key.pem -out public\_key.pem

相關文章