<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.sodium.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.sodium-crypto-pwhash-str.php',
    1 => 'sodium_crypto_pwhash_str',
    2 => 'Renvoie un hachage encod&eacute; en ASCII',
  ),
  'up' => 
  array (
    0 => 'ref.sodium.php',
    1 => 'Sodium Fonctions',
  ),
  'prev' => 
  array (
    0 => 'function.sodium-crypto-pwhash-scryptsalsa208sha256-str-verify.php',
    1 => 'sodium_crypto_pwhash_scryptsalsa208sha256_str_verify',
  ),
  'next' => 
  array (
    0 => 'function.sodium-crypto-pwhash-str-needs-rehash.php',
    1 => 'sodium_crypto_pwhash_str_needs_rehash',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/sodium/functions/sodium-crypto-pwhash-str.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.sodium-crypto-pwhash-str" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">sodium_crypto_pwhash_str</h1>
  <p class="verinfo">(PHP 7 &gt;= 7.2.0, PHP 8)</p><p class="refpurpose"><span class="refname">sodium_crypto_pwhash_str</span> &mdash; <span class="dc-title">Renvoie un hachage encodé en ASCII</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.sodium-crypto-pwhash-str-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>sodium_crypto_pwhash_str</strong></span>(<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">$password</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$opslimit</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$memlimit</code></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="simpara">
   Utilise un algorithme de hachage dur en CPU et en mémoire avec un sel généré aléatoirement, et des limites de mémoire et de CPU pour générer un hachage encodé en ASCII adapté au stockage de mots de passe.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.sodium-crypto-pwhash-str-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">password</code></dt>
    <dd>
     <span class="simpara">
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span> ; Le mot de passe pour lequel générer un hachage.
     </span>
    </dd>
   
   
    <dt><code class="parameter">opslimit</code></dt>
    <dd>
     <span class="simpara">
      Représente une quantité maximale de calculs à effectuer. Augmenter ce nombre fera que la fonction nécessitera plus de cycles CPU pour calculer une clé. Il existe des constantes disponibles pour définir la limite d&#039;opérations à des valeurs appropriées en fonction de l&#039;utilisation prévue, dans l&#039;ordre de la force : <strong><code><a href="sodium.constants.php#constant.sodium-crypto-pwhash-opslimit-interactive">SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</a></code></strong>, <strong><code><a href="sodium.constants.php#constant.sodium-crypto-pwhash-opslimit-moderate">SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</a></code></strong> et <strong><code><a href="sodium.constants.php#constant.sodium-crypto-pwhash-opslimit-sensitive">SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</a></code></strong>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">memlimit</code></dt>
    <dd>
     <span class="simpara">
      La quantité maximale de RAM que la fonction utilisera, en octets. Il existe des constantes pour aider à choisir une valeur appropriée, dans l&#039;ordre de la taille : <strong><code><a href="sodium.constants.php#constant.sodium-crypto-pwhash-memlimit-interactive">SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</a></code></strong>, <strong><code><a href="sodium.constants.php#constant.sodium-crypto-pwhash-memlimit-moderate">SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</a></code></strong> et <strong><code><a href="sodium.constants.php#constant.sodium-crypto-pwhash-memlimit-sensitive">SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</a></code></strong>. Typiquement, ces valeurs devraient être associées aux valeurs opslimit correspondantes.
     </span>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.sodium-crypto-pwhash-str-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="simpara">
   Renvoie le hachage de mot de passe.
  </p>
  <p class="simpara">
   Pour produire le même hachage de mot de passe à partir du même mot de passe, les mêmes valeurs pour <code class="parameter">opslimit</code> et <code class="parameter">memlimit</code> doivent être utilisées.
   Ces valeurs sont intégrées dans le hachage généré, donc tout ce qui est nécessaire pour vérifier le hachage est inclus. Cela permet
   à la fonction <span class="function"><a href="function.sodium-crypto-pwhash-str-verify.php" class="function">sodium_crypto_pwhash_str_verify()</a></span> de vérifier le hachage sans
   avoir besoin de stockage séparé pour les autres paramètres.
  </p>
 </div>


  <div class="refsect1 examples" id="refsect1-function.sodium-crypto-pwhash-str-examples">
  <h3 class="title">Exemples</h3>
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Exemple de <span class="function"><strong>sodium_crypto_pwhash_str()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$password </span><span style="color: #007700">= </span><span style="color: #DD0000">'password'</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">sodium_crypto_pwhash_str</span><span style="color: #007700">(<br />    </span><span style="color: #0000BB">$password</span><span style="color: #007700">,<br />    </span><span style="color: #0000BB">SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</span><span style="color: #007700">,<br />    </span><span style="color: #0000BB">SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE<br /></span><span style="color: #007700">);</span></span></code></div>
   </div>

   <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw</pre>
</div>
   </div>
  </div>
 </div>


 <div class="refsect1 notes" id="refsect1-function.sodium-crypto-pwhash-str-notes">
  <h3 class="title">Notes</h3>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    Les hachages sont calculés en utilisant l&#039;algorithme Argon2ID,
    fournissant une résistance à la fois aux attaques GPU et aux attaques par canaux latéraux.
    Contrairement à la fonction <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span>,
    il n&#039;y a pas de paramètre de sel (un sel est généré automatiquement),
    et les paramètres <code class="parameter">opslimit</code> et
    <code class="parameter">memlimit</code> ne sont pas optionnels.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.sodium-crypto-pwhash-str-seealso">
  <h3 class="title">Voir aussi</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.sodium-crypto-pwhash-str-verify.php" class="function" rel="rdfs-seeAlso">sodium_crypto_pwhash_str_verify()</a> - V&eacute;rifie qu'un mot de passe correspond &agrave; un hachage</span></li>
   <li><span class="function"><a href="function.sodium-crypto-pwhash.php" class="function" rel="rdfs-seeAlso">sodium_crypto_pwhash()</a> - D&eacute;rive une cl&eacute; &agrave; partir d'un mot de passe, en utilisant Argon2</span></li>
   <li><span class="function"><a href="function.password-hash.php" class="function" rel="rdfs-seeAlso">password_hash()</a> - Cr&eacute;e une cl&eacute; de hachage pour un mot de passe</span></li>
   <li><span class="function"><a href="function.password-verify.php" class="function" rel="rdfs-seeAlso">password_verify()</a> - V&eacute;rifie qu'un mot de passe correspond &agrave; un hachage</span></li>
   <li><a href="https://download.libsodium.org/doc/password_hashing/the_argon2i_function.html" class="link external">&raquo;&nbsp;Libsodium Argon2 docs</a></li>
  </ul>
 </div>



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