(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
openssl_pkey_new — Gera uma nova chave privada
openssl_pkey_new() gera uma nova chave privada. Como obter o componente público da chave é mostrado no exemplo abaixo.
Nota: É preciso ter um arquivo openssl.cnf válido instalado para que esta função funcione corretamente. Consulte as notas na seção de instalação para obter mais informações.
options
Pode ser feito ajuste fino na geração de chaves (como especificar o número de
bits) usando options
. Consulte
openssl_csr_new() para obter mais informações sobre
options
.
Retorna uma instância de OpenSSLAsymmetricKey para
a chave privada em caso de sucesso ou false
em caso de erro.
Versão | Descrição |
---|---|
8.0.0 |
Em caso de sucesso, esta função retorna uma instância OpenSSLAsymmetricKey agora;
anteriormente, retornava um resource do tipo OpenSSL key .
|
7.1.0 |
A chave curve_name do parâmetro options foi
adicionada para tornar possível a criação de chaves EC com base nos algoritmos de Curva Elíptica.
|
Exemplo #1 Obtendo a chave pública de uma chave privada
<?php
$private_key = openssl_pkey_new();
$public_key_pem = openssl_pkey_get_details($private_key)['key'];
echo $public_key_pem, PHP_EOL;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>
O exemplo acima produzirá algo semelhante a:
// Saída anterior ao PHP 8.0.0; observe que a função retorna um recurso -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwknBFEherZe74BiRjTFA hqwZ1SK7brwq7C/afnLXKhRR7jnrpfM0ypC46q8xz5UZswenZakJ7kd5fls+r4Bv 3P8XsKYLTh2m1GiWQhV1g77cNIN4qNWh70PiDO3fB2446o1LBgToQYuRZS5YQRfJ rVD0ysgtVcCU9tjaey28HlgApOpYFTaaKPj2MBmEYpMC+kG2HhL12GfpHUi2eiXI dXT2WskWHWvUrmQ7fJIfI92JlDokV62DH/q1oiedLs9OPNb0rL1aAmYdzaVN6XNH x/o4Lh125v2vAPV9E3fZCDc/HDEUaahpjanMiCQEgEDp5Hr+CRkvERT5/ydN+p08 5wIDAQAB -----END PUBLIC KEY----- resource(6) of type (OpenSSL key) // Saída a partir do PHP 8.0.0; observe que a função retorna um objeto -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwknBFEherZe74BiRjTFA hqwZ1SK7brwq7C/afnLXKhRR7jnrpfM0ypC46q8xz5UZswenZakJ7kd5fls+r4Bv 3P8XsKYLTh2m1GiWQhV1g77cNIN4qNWh70PiDO3fB2446o1LBgToQYuRZS5YQRfJ rVD0ysgtVcCU9tjaey28HlgApOpYFTaaKPj2MBmEYpMC+kG2HhL12GfpHUi2eiXI dXT2WskWHWvUrmQ7fJIfI92JlDokV62DH/q1oiedLs9OPNb0rL1aAmYdzaVN6XNH x/o4Lh125v2vAPV9E3fZCDc/HDEUaahpjanMiCQEgEDp5Hr+CRkvERT5/ydN+p08 5wIDAQAB -----END PUBLIC KEY----- object(OpenSSLAsymmetricKey)#2 (0) { }