<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.crypto.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'book.hash.php',
    1 => 'Hash',
    2 => 'HASH Message Digest Framework',
  ),
  'up' => 
  array (
    0 => 'refs.crypto.php',
    1 => 'Extensions sur la cryptographie',
  ),
  'prev' => 
  array (
    0 => 'refs.crypto.php',
    1 => 'Extensions sur la cryptographie',
  ),
  'next' => 
  array (
    0 => 'hash.setup.php',
    1 => 'Installation/Configuration',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/hash/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.hash.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.hash" class="book">
 
 <h1 class="title">HASH Message Digest Framework</h1>
 

 
 <div id="intro.hash" class="preface">
  <h1 class="title">Introduction</h1>
  <p class="para">
   Cette extension fournit des fonctions qui peuvent être utilisées pour le traitement direct ou
   incrémental de messages de longueur arbitraire en utilisant une variété d&#039;algorithmes de
   hachage, y compris la génération de valeurs <abbr title="Hash-based Message Authentication Code">HMAC</abbr>
   et des dérivations de clés incluant <abbr title="HMAC Key Definition Function">HKDF</abbr> et
   <abbr title="Password-Based Key Derivation Function 2">PBKDF2</abbr>.
  </p>
  <p class="para">
   Il existe grosso modo trois catégories d&#039;algorithmes de hachage, et une liste complète des
   algorithmes peut être trouvée dans la documentation pour <span class="function"><a href="function.hash-algos.php" class="function">hash_algos()</a></span>.

   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Algorithmes de somme de contrôle (tels que <code class="literal">&quot;crc32b&quot;</code> ou <code class="literal">&quot;adler32&quot;</code>) :
      Ceux-ci sont utilisés pour calculer des sommes de contrôle, utiles dans des situations telles que
      la détection des erreurs de transmission. Ils sont souvent très rapides. Ces
      algorithmes génèrent souvent des valeurs facilement &quot;devinables&quot; ou peuvent être manipulés
      pour créer des collisions, ils sont donc totalement inadaptés à une utilisation cryptographique.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Algorithmes non cryptographiques (comme la famille xxHash) :
      Ceux-ci sont souvent utilisés pour calculer des valeurs de hachage pour des tables de hachage, car ils sont
      conçus pour produire une bonne distribution sur des entrées de chaîne arbitraires. Ils
      sont également généralement rapides, mais aussi inadaptés à une utilisation cryptographique.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Algorithmes cryptographiques (comme la famille SHA-2) :
      Ceux-ci sont conçus pour produire des valeurs de hachage représentatives de leurs
      entrées mais ne pouvant pas être devinées ni sujettes aux collisions. La performance est souvent
      une préoccupation secondaire, mais le matériel moderne supporte souvent une gestion spéciale
      pour ces algorithmes que PHP essaie d&#039;utiliser lorsque disponible.
     </span>
     <span class="simpara">
      Le Centre de ressources pour la sécurité informatique du <abbr>NIST</abbr> a
      <a href="https://csrc.nist.gov/projects/hash-functions" class="link external">&raquo;&nbsp;une explication des algorithmes
      actuellement approuvés par les Standards fédéraux de traitement de l&#039;information des États-Unis</a>.
     </span>
     <div class="caution"><strong class="caution">Attention</strong>
      <p class="para">
       Certains des premiers algorithmes cryptographiques, tels que <code class="literal">&quot;md4&quot;</code>,
       <code class="literal">&quot;md5&quot;</code>, et <code class="literal">&quot;sha1&quot;</code>, se sont avérés
       être sujets à des attaques par collision et il est généralement recommandé de ne plus
       les utiliser pour des applications cryptographiques.
      </p>
     </div>
    </li>
   </ul>
  </p>

  <p class="para">
   Voir également la <a href="faq.passwords.php" class="link">FAQ sur le hachage sécurisé des mots de passe</a>
   pour des informations sur les meilleures pratiques d&#039;utilisation des fonctions de hachage dans la gestion
   des mots de passe.
  </p>

 </div>
 

 







 







 






 









<ul class="chunklist chunklist_book"><li><a href="hash.setup.php">Installation/Configuration</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="hash.installation.php">Installation</a></li><li><a href="hash.resources.php">Types de ressources</a></li></ul></li><li><a href="hash.constants.php">Constantes pr&eacute;-d&eacute;finies</a></li><li><a href="class.hashcontext.php">HashContext</a> — La classe HashContext<ul class="chunklist chunklist_book chunklist_children"><li><a href="hashcontext.construct.php">HashContext::__construct</a> — Constructeur priv&eacute; pour interdire l'instanciation directe</li><li><a href="hashcontext.serialize.php">HashContext::__serialize</a> — S&eacute;rialise l'objet HashContext</li><li><a href="hashcontext.unserialize.php">HashContext::__unserialize</a> — D&eacute;s&eacute;rialise le param&egrave;tre data en un objet HashContext</li></ul></li><li><a href="ref.hash.php">hash_pbkdf2</a> — Fonctions Hash<ul class="chunklist chunklist_book chunklist_children"><li><a href="function.hash.php">hash</a> — G&eacute;n&egrave;re une valeur de hachage (empreinte num&eacute;rique)</li><li><a href="function.hash-algos.php">hash_algos</a> — Retourne une liste des algorithmes de hachage enregistr&eacute;s</li><li><a href="function.hash-copy.php">hash_copy</a> — Copie un contexte de hachage</li><li><a href="function.hash-equals.php">hash_equals</a> — Comparaison de cha&icirc;nes r&eacute;sistante aux attaques temporelles</li><li><a href="function.hash-file.php">hash_file</a> — G&eacute;n&egrave;re une valeur de hachage en utilisant le contenu d'un fichier donn&eacute;</li><li><a href="function.hash-final.php">hash_final</a> — Finalise un hachage incr&eacute;mental et retourne le r&eacute;sultat de l'empreinte num&eacute;rique</li><li><a href="function.hash-hkdf.php">hash_hkdf</a> — G&eacute;n&egrave;re une d&eacute;rivation de cl&eacute; HKDF depuis une cl&eacute; fournie</li><li><a href="function.hash-hmac.php">hash_hmac</a> — G&eacute;n&egrave;re une valeur de cl&eacute; de hachage en utilisant la m&eacute;thode HMAC</li><li><a href="function.hash-hmac-algos.php">hash_hmac_algos</a> — Retourne la liste des algorithmes de hachage adapt&eacute;s pour hash_hmac</li><li><a href="function.hash-hmac-file.php">hash_hmac_file</a> — G&eacute;n&egrave;re une valeur de cl&eacute; de hachage en utilisant la m&eacute;thode HMAC et le contenu d'un fichier donn&eacute;</li><li><a href="function.hash-init.php">hash_init</a> — Initialise un contexte de hachage incr&eacute;mental</li><li><a href="function.hash-update.php">hash_update</a> — Ajoute des donn&eacute;es dans le contexte de hachage actif</li><li><a href="function.hash-update-file.php">hash_update_file</a> — Ajoute des donn&eacute;es dans un contexte de hachage actif provenant d'un fichier</li><li><a href="function.hash-update-stream.php">hash_update_stream</a> — Ajoute des donn&eacute;es dans un contexte de hachage actif d'un flux ouvert</li></ul></li></ul></div><?php manual_footer($setup); ?>