<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.mhash.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.mhash-keygen-s2k.php',
    1 => 'mhash_keygen_s2k',
    2 => 'Gera uma chave',
  ),
  'up' => 
  array (
    0 => 'ref.mhash.php',
    1 => 'Fun&ccedil;&otilde;es da Mhash',
  ),
  'prev' => 
  array (
    0 => 'function.mhash-get-hash-name.php',
    1 => 'mhash_get_hash_name',
  ),
  'next' => 
  array (
    0 => 'book.openssl.php',
    1 => 'OpenSSL',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/mhash/functions/mhash-keygen-s2k.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.mhash-keygen-s2k" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mhash_keygen_s2k</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">mhash_keygen_s2k</span> &mdash; <span class="dc-title">Gera uma chave</span></p>

 </div>

 <div id="function.mhash-keygen-s2k-refsynopsisdiv">
  <div class="warning"><strong class="warning">Aviso</strong><p class="simpara">Esta função foi
<em>DESCONTINUADA</em> a partir do PHP 8.1.0. O uso desta função
é fortemente desencorajado.</p></div>
 </div>

 <div class="refsect1 description" id="refsect1-function.mhash-keygen-s2k-description">
  <h3 class="title">Descrição</h3>
  <div class="methodsynopsis dc-description">
   <span class="attribute"><a href="class.deprecated.php">#[\Deprecated]</a> </span><br>
   <span class="methodname"><strong>mhash_keygen_s2k</strong></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">$algo</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">$password</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">$salt</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">$length</code></span><br>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   Gera um chave de acordo com o parâmetro <code class="parameter">algo</code> a partir de uma
   senha de usuário informada em <code class="parameter">password</code>.
  </p>
  <p class="para">
   Este é o algoritmo Salted S2K como especificado no documento OpenPGP
   (<a href="https://datatracker.ietf.org/doc/html/rfc2440" class="link external">&raquo;&nbsp;RFC 2440</a>).
  </p>
  <p class="para">
   Tenha em mente que senhas fornecidas pelos usuários não são
   adequadas para uso como chaves em algoritmos criptográficos, pois os usuários normalmente
   escolhem chaves que podem ser escritas no teclado. Estas senhas usam
   somente 6 a 7 bits por caractere (ou menos). É altamente recomendado
   usar algum tipo de transformação (como esta função) na chave informada
   pelo usuário.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.mhash-keygen-s2k-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">algo</code></dt>
     <dd>
      <p class="para">
       O ID da hash usada para criar a chave.
       Um das constantes <strong><code>MHASH_hashname</code></strong>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">password</code></dt>
     <dd>
      <p class="para">
       Uma senha fornecida pelo usuário.
      </p>
     </dd>
    
    
     <dt><code class="parameter">salt</code></dt>
     <dd>
      <p class="para">
       Deve ser diferente e aleatório o suficiente para cada chave gerada de forma
       que sejam criadas chaves diferentes. Como <code class="parameter">salt</code>
       precisa ser conhecido quando se verifica as chaves, é uma boa prática concatenar
       a chave a ele. Salt tem um comprimento fixo de 8 bytes e será completado com zeros
       forem fornecidos menos bytes.
      </p>
     </dd>
    
    
     <dt><code class="parameter">length</code></dt>
     <dd>
      <p class="para">
       O tamanho da chave, em bytes.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mhash-keygen-s2k-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   Retorna a chave gerada como uma string, ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> em caso de erro.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.mhash-keygen-s2k-changelog">
  <h3 class="title">Registro de Alterações</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versão</th>
       <th>Descrição</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.1.0</td>
       <td>
        Esta função foi descontinuada.
        Use as <a href="ref.hash.php" class="link">funções <code class="literal">hash_*()</code></a> em seu lugar.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


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