<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.openssl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.openssl-public-encrypt.php',
    1 => 'openssl_public_encrypt',
    2 => 'Criptografa dados com chave p&uacute;blica',
  ),
  'up' => 
  array (
    0 => 'ref.openssl.php',
    1 => 'Fun&ccedil;&otilde;es de OpenSSL',
  ),
  'prev' => 
  array (
    0 => 'function.openssl-public-decrypt.php',
    1 => 'openssl_public_decrypt',
  ),
  'next' => 
  array (
    0 => 'function.openssl-random-pseudo-bytes.php',
    1 => 'openssl_random_pseudo_bytes',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/openssl/functions/openssl-public-encrypt.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.openssl-public-encrypt" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">openssl_public_encrypt</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.6, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">openssl_public_encrypt</span> &mdash; <span class="dc-title">Criptografa dados com chave pública</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.openssl-public-encrypt-description">
  <h3 class="title">Descrição</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>openssl_public_encrypt</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="attribute"><a href="class.sensitiveparameter.php">#[\SensitiveParameter]</a> </span><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$data</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter reference">&$encrypted_data</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="class.opensslasymmetrickey.php" class="type OpenSSLAsymmetricKey">OpenSSLAsymmetricKey</a></span>|<span class="type"><a href="class.opensslcertificate.php" class="type OpenSSLCertificate">OpenSSLCertificate</a></span>|<span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$public_key</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$padding</code><span class="initializer"> = <strong><code><a href="openssl.padding.php#constant.openssl-pkcs1-padding">OPENSSL_PKCS1_PADDING</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$digest_algo</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>openssl_public_encrypt()</strong></span> criptografa os dados em <code class="parameter">data</code>
   a chave pública <code class="parameter">public_key</code> e armazena o resultado em
   <code class="parameter">encrypted_data</code>. Os dados criptografados podem ser descriptografados pela função
   <span class="function"><a href="function.openssl-private-decrypt.php" class="function">openssl_private_decrypt()</a></span>.
  </p>
  <p class="para">
   Esta função pode ser usada, por exemplo, para criptografar mensagem que possa depois ser lida
   somente pelo proprietário da chave privada. Também pode ser usada para armazenar dados de forma
   segura em um banco de dados.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.openssl-public-encrypt-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">data</code></dt>
     <dd>
      <p class="para">
      </p>
     </dd>
    
    
     <dt><code class="parameter">encrypted_data</code></dt>
     <dd>
      <p class="para">
       Esta variável conterá o resultado da criptografia.
      </p>
     </dd>
    
    
     <dt><code class="parameter">public_key</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">public_key</code> deve ser a chave pública que corresponde
       à chave privada que foi usada para criptografar os dados.
      </p>
     </dd>
    
    
     <dt><code class="parameter">padding</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">padding</code> pode ser uma das constantes
       <strong><code><a href="openssl.padding.php#constant.openssl-pkcs1-padding">OPENSSL_PKCS1_PADDING</a></code></strong>,
       <strong><code><a href="openssl.padding.php#constant.openssl-sslv23-padding">OPENSSL_SSLV23_PADDING</a></code></strong>,
       <strong><code><a href="openssl.padding.php#constant.openssl-pkcs1-oaep-padding">OPENSSL_PKCS1_OAEP_PADDING</a></code></strong> ou
       <strong><code><a href="openssl.padding.php#constant.openssl-no-padding">OPENSSL_NO_PADDING</a></code></strong>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">digest_algo</code></dt>
     <dd>
      <span class="simpara">
       O algoritmo de resumo para preenchimento OAEP, ou <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> para usar o algoritmo padrão.
      </span>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.openssl-public-encrypt-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   Retorna <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> em caso de sucesso ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> em caso de falha.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.openssl-public-encrypt-changelog">
  <h3 class="title">Registro de Alterações</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versão</th>
      <th>Descrição</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.5.0</td>
      <td>
       O parâmetro opcional <code class="parameter">digest_algo</code> foi adicionado.
      </td>
     </tr>

     <tr>
      <td>8.0.0</td>
      <td>
       <code class="parameter">public_key</code> agora aceita uma instância de <span class="classname"><a href="class.opensslasymmetrickey.php" class="classname">OpenSSLAsymmetricKey</a></span>
       ou <span class="classname"><a href="class.opensslcertificate.php" class="classname">OpenSSLCertificate</a></span>;
       anteriormente, um <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> do tipo <code class="literal">OpenSSL key</code> ou <code class="literal">OpenSSL X.509</code>
       era aceito.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 seealso" id="refsect1-function.openssl-public-encrypt-seealso">
  <h3 class="title">Veja Também</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.openssl-private-encrypt.php" class="function" rel="rdfs-seeAlso">openssl_private_encrypt()</a> - Criptografa dados com chave privada</span></li>
    <li><span class="function"><a href="function.openssl-private-decrypt.php" class="function" rel="rdfs-seeAlso">openssl_private_decrypt()</a> - Descriptografa dados com chave privada</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>