<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.password.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'password.constants.php',
    1 => 'Constantes predefinidas',
    2 => 'Constantes predefinidas',
  ),
  'up' => 
  array (
    0 => 'book.password.php',
    1 => 'Hash de Senhas',
  ),
  'prev' => 
  array (
    0 => 'password.installation.php',
    1 => 'Instala&ccedil;&atilde;o',
  ),
  'next' => 
  array (
    0 => 'ref.password.php',
    1 => 'Fun&ccedil;&otilde;es da extens&atilde;o Password Hashing',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/password/constants.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="password.constants" class="appendix">
 <h1 class="title">Constantes predefinidas</h1>

 <p class="simpara">
As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.
</p>

 <p class="para">
  <dl>
   
    <dt id="constant.password-bcrypt">
     <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong> é usada para criar novas hashes
      de senha usando o algoritmo <strong><code><a href="string.constants.php#constant.crypt-blowfish">CRYPT_BLOWFISH</a></code></strong>.
     </p>
     <p class="para">
      Sempre terminará com um hash usando o formato de criptografia &quot;$2y$&quot;,
      com 60 caracteres.
     </p>
     <p class="para">
      Opções suportadas:
     </p>
     <ul class="itemizedlist">
      <li class="listitem">
       <p class="para">
        <code class="literal">salt</code> (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>) - para fornecer manualmente um salt que será usado ao fazer o hash da senha.
        Observe que isso irá substituir e evitar que um salt seja gerado automaticamente.
       </p>
       <p class="para">
        Se omitido, um salt aleatório será gerado pela função <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span> para
        cada senha sofrendo hash. Esse é o modo de operação desejado
        e a partir do PHP 7.0.0 a opção salt foi descontinuada.
       </p>
      </li>
      <li class="listitem">
       <p class="para">
        <code class="literal">cost</code> (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) - indica o custo de algoritmo que deve ser usado.
        Exemplos desses valores podem ser encontrados na página da função <span class="function"><a href="function.crypt.php" class="function">crypt()</a></span>.
        
       </p>
       <p class="para">
        Se omitido, um valor padrão de <code class="literal">12</code> será usado. Esta é uma boa
        base de custo, mas pode-se considerar aumentar esse valor dependendo do equipamento.
       </p>
      </li>
     </ul>
    </dd>
   
   
    <dt id="constant.password-bcrypt-default-cost">
     <strong><code><a href="password.constants.php#constant.password-bcrypt-default-cost">PASSWORD_BCRYPT_DEFAULT_COST</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
     </p>
     <p class="para">
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2i">
     <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong> é utilizado para criar novos hashes
      utilizando o algoritmo Argon2i.
     </p>
     <p class="para">
      Opções:
     </p>
     <ul class="itemizedlist">
      <li class="listitem">
       <p class="para">
        <code class="literal">memory_cost</code> (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) - Memória máxima (em bytes) que poderá
        ser utilizada para calcular o hash Argon2. Padrão: <strong><code><a href="password.constants.php#constant.password-argon2-default-memory-cost">PASSWORD_ARGON2_DEFAULT_MEMORY_COST</a></code></strong>.
       </p>
      </li>
      <li class="listitem">
       <p class="para">
        <code class="literal">time_cost</code> (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) - Tempo máximo que poderá
        demorar para calcula o hash Argon2. Padrão: <strong><code><a href="password.constants.php#constant.password-argon2-default-time-cost">PASSWORD_ARGON2_DEFAULT_TIME_COST</a></code></strong>.
       </p>
      </li>
      <li class="listitem">
       <p class="para">
        <code class="literal">threads</code> (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) - Número de threads utilizada para calcular
        o hash Argon2. Padrão: <strong><code><a href="password.constants.php#constant.password-argon2-default-threads">PASSWORD_ARGON2_DEFAULT_THREADS</a></code></strong>.
        Somente disponível com libargon2, mas não na implementação libsodium.
       </p>
      </li>
     </ul>
     <p class="para">
      Disponível a partir do PHP 7.2.0.
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2id">
     <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong> é utilizado para criar novos hashes de
      senha com o algoritmo Argon2id. Ele suporta as mesmas opções de
      <a href="password.constants.php#constant.password-argon2i" class="link"><strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong></a>.
     </p>
     <p class="para">
      Disponível a partir do PHP 7.3.0.
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-default-memory-cost">
     <strong><code><a href="password.constants.php#constant.password-argon2-default-memory-cost">PASSWORD_ARGON2_DEFAULT_MEMORY_COST</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
      Quantidade de memória padrão, em bytes, que será utilizado ao tentar
      calcular um hash.
     </p>
     <p class="para">
      Disponível a partir do PHP 7.2.0.
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-default-time-cost">
     <strong><code><a href="password.constants.php#constant.password-argon2-default-time-cost">PASSWORD_ARGON2_DEFAULT_TIME_COST</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
      Quantidade de tempo padrão que será gasto tentando calcular um hash.
     </p>
     <p class="para">
      Disponível a partir do PHP 7.2.0.
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-default-threads">
     <strong><code><a href="password.constants.php#constant.password-argon2-default-threads">PASSWORD_ARGON2_DEFAULT_THREADS</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
      Número de threads padrão qual a Argon2lib irá utilizar.
      Não disponível na implementação libsodium.
     </p>
     <p class="para">
      Disponível a partir do PHP 7.2.0.
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-provider">
     <strong><code><a href="password.constants.php#constant.password-argon2-provider">PASSWORD_ARGON2_PROVIDER</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
     </p>
     <p class="para">
      Disponível a partir do PHP 7.4.0.
     </p>
    </dd>
   
   
    <dt id="constant.password-default">
     <strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      O algoritmo padrão a ser usado para fazer o hash se nenhum algoritmo for fornecido.
      Ele pode mudar com as novas versões do PHP quando algoritmos de hash novos e mais
      fortes forem suportados.
     </p>
     <p class="para">
      É importante notar que ao longo do tempo essa constante pode mudar.
      Assim sendo, deve-se estar ciente que o comprimento do hash resultante
      pode mudar.
      Portanto, ao usar <strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong>, o hash
      resultante deve ser armazanado de uma forma que possa armazenar hashes arbitrários,
      o comprimento recomendado é de <code class="literal">255</code> bytes.
     </p>
     <span class="simpara">
      Atualmente é um sinônimo de <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>.
     </span>
    </dd>
   
  </dl>
 </p>

 <p class="formalpara">
  <h5 class="title">Registro de Alterações</h5>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versão</th>
       <th>Descrição</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.4.0</td>
       <td>
        Os valores informados como IDs de algoritimo (<strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>, <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong>,
        <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong> e <strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong>) agora são do tipo <span class="type"><a href="language.types.string.php" class="type string">string</a></span>.
        Anteriormente eles eram do tipo <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </p>

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