<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.mhash-keygen-s2k.php',
    1 => 'mhash_keygen_s2k',
    2 => 'Genera una clave',
  ),
  'up' => 
  array (
    0 => 'ref.mhash.php',
    1 => 'Funciones 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' => 'es',
    '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">Genera una clave</span></p>

 </div>

 <div id="function.mhash-keygen-s2k-refsynopsisdiv">
  <div class="warning"><strong class="warning">Advertencia</strong><p class="simpara">Esta función está
<em>OBSOLETA</em> a partir de PHP 8.1.0. Depender de esta función
está altamente desaconsejado.</p></div>
 </div>

 <div class="refsect1 description" id="refsect1-function.mhash-keygen-s2k-description">
  <h3 class="title">Descripción</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">
   Genera una clave según el <code class="parameter">algo</code> proporcionado,
   utilizando la contraseña <code class="parameter">password</code>
   proporcionada.
  </p>
  <p class="para">
   Esta función utiliza el algoritmo <code class="literal">Salted S2K</code>, especificado
   en OpenPGP (<a href="https://datatracker.ietf.org/doc/html/rfc2440" class="link external">&raquo;&nbsp;RFC 2440</a>).
  </p>
  <p class="para">
   Es importante tener en cuenta que las contraseñas proporcionadas por los usuarios
   no son recomendadas para generar claves criptográficas,
   dado que los usuarios normales recuerdan contraseñas que pueden teclear. Estas contraseñas
   utilizan solo 6 a 7 de los 8 bits de un carácter (o incluso menos). Se recomienda encarecidamente
   aplicar una función de transformación (como esta) a una contraseña de usuario.
  </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">
       El identificador del hash utilizado para crear la clave.
       Una de las constantes <strong><code>MHASH_hashname</code></strong>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">password</code></dt>
     <dd>
      <p class="para">
       Contraseña proporcionada por el usuario.
      </p>
     </dd>
    
    
     <dt><code class="parameter">salt</code></dt>
     <dd>
      <p class="para">
       Debe ser diferente y suficientemente aleatorio para cada
       clave que se genera, a fin de crear claves diferentes.
       Dado que el parámetro <code class="parameter">salt</code>
       debe ser conocido cuando se verifican las claves, es una
       buena idea añadirlo a la clave. El parámetro salt debe tener
       una longitud de 8 bytes, y se rellenará con ceros si se proporciona uno de menor tamaño.
      </p>
     </dd>
    
    
     <dt><code class="parameter">length</code></dt>
     <dd>
      <p class="para">
       La longitud de la clave, en bytes.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mhash-keygen-s2k-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve la clave generada, en forma de <span class="type"><a href="language.types.string.php" class="type string">string</a></span>, o
   <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.mhash-keygen-s2k-changelog">
  <h3 class="title">Historial de cambios</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versión</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.1.0</td>
       <td>
        Esta función ha sido deprecada.
        Utilizar las <a href="ref.hash.php" class="link">funciones <code class="literal">hash_*()</code></a> en su lugar.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


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