(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
openssl_pkey_new — 新規に秘密鍵を生成する
openssl_pkey_new() は、 新しい秘密鍵を生成します。 鍵の公開部を取得する方法は、以下の例に示します。
注意: この関数を正しく動作させるには、正しい形式の openssl.cnf をインストールしておく必要があります。 詳細な情報は、インストールについてのセクション を参照ください。
options
鍵の作成方法の詳細(ビット数など)を指定するには、
options
を使用します。
options
の詳細な情報については
openssl_csr_new() を参照ください。
成功した場合に、OpenSSLAsymmetricKey クラスのインスタンスを返します。
エラー時に false
を返します。
バージョン | 説明 |
---|---|
8.0.0 |
成功した場合に、
この関数は OpenSSLAsymmetricKey クラスのインスタンスを返すようになりました。
これより前のバージョンでは、
OpenSSL key 型のリソースを返していました。
|
7.1.0 | EC キーを作成できるようにするため、
options に curve_name が追加されました。 |
例1 秘密鍵から、公開鍵を取得する
<?php
$private_key = openssl_pkey_new();
$public_key_pem = openssl_pkey_get_details($private_key)['key'];
echo $public_key_pem;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>
上の例の出力は、 たとえば以下のようになります。
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZFsmN2P6rx1Xt7YV95o gcdlal0k3ryiIhFNzjwtRNNTXfEfBr6lUuaIJYQ8/XqEBX0hpcfuuF6tTRlonA3t WLME0QFD93YVsAaXcy76YqjjqcRRodIBphAbYyyMI/lXkQAdn7kbAmr7neSOsMYJ El9Wo4Hl4oG6e52ZnYHyqW9dxh4hX93eupR2TmcCdVf+r9xoHewP0KJYSHt7vDUX AQlWYcQiWHIadFsmL0orr6mutlXFReoHbesgKY9/3YLOu0JfxflSjIZ2JeL1NTl1 MsmODsUwgAUrwnWKKx+eQUP5g3GnSB3dPkRh9zRVRiLNWbCugyjrf3e6DgQWrW7j pwIDAQAB -----END PUBLIC KEY----- resource(5) of type (OpenSSL key)