<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.password.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.password-hash.php',
    1 => 'password_hash',
    2 => 'Erstellt einen Passwort-Hash',
  ),
  'up' => 
  array (
    0 => 'ref.password.php',
    1 => 'Passwort-Hashing-Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.password-get-info.php',
    1 => 'password_get_info',
  ),
  'next' => 
  array (
    0 => 'function.password-needs-rehash.php',
    1 => 'password_needs_rehash',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/password/functions/password-hash.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.password-hash" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">password_hash</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.5.0, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">password_hash</span> &mdash; <span class="dc-title">Erstellt einen Passwort-Hash</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.password-hash-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>password_hash</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"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.null.php" class="type null">null</a></span></span> <code class="parameter">$algo</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code><span class="initializer"> = []</span></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>password_hash()</strong></span> erstellt einen neuen Passwort-Hash und
   benutzt dabei einen starken Einweg-Hashing-Algorithmus.
  </p>
  <p class="simpara">
   Die folgenden Algorithmen werden zur Zeit unterstützt:
  </p>
  <p class="para">
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      <strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong> - Verwendet den bcrypt-Algorithmus
      (Standard in PHP 5.5.0). Es ist zu beachten, dass sich diese Konstante
      mit der Zeit ändern wird, wenn stärkere Algorithmen in PHP implementiert
      werden. Aus diesem Grund kann sich die Länge des zurückgegebenen Strings
      mit der Zeit ändern. Es wird deshalb empfohlen das Ergebnis in einem
      Datenbankfeld zu speichern, das mehr als 60 Bytes speichern kann (255
      Bytes wären eine gute Wahl).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong> - Verwendet den bcrypt-Algorithmus
      zum Erstellen des Hashes. Dieser erstellt einen
      <span class="function"><a href="function.crypt.php" class="function">crypt()</a></span>-kompatiblen Hash und benutzt die
      <code class="literal">$2y$</code>-Kennung.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong> - Verwendet den
      Argon2i-Algorithmus zur Erstellung des Hashes. Dieser Algorithmus ist
      nur verfügbar, wenn PHP mit Argon2-Unterstützung kompiliert wurde.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong> - Verwendet den
      Argon2id-Algorithmus zur Erstellung des Hashes. Dieser Algorithmus ist
      nur verfügbar, wenn PHP mit Argon2-Unterstützung kompiliert wurde.
     </span>
    </li>
   </ul>
  </p>
  <p class="simpara">
   Unterstützte Optionen für <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>:
  </p>
  <p class="para">
   <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>) - um manuell ein Salt
      anzugeben, das beim Hashing des Passworts verwendet wird. Es ist zu
      beachten, dass diese Option die automatische Generierung des Salt
      verhindert.
     </p>
     <p class="para">
      Wenn diese Option nicht angegeben wird, erzeugt die Funktion
      <span class="function"><strong>password_hash()</strong></span> für jedes gehashte Passwort ein
      zufälliges Salt. Dies ist die vorgesehene Funktionsweise.
     </p>
     <div class="warning"><strong class="warning">Warnung</strong>
      <p class="para">
       Die salt-Option wird missbilligt. Es wird nun empfohlen, einfach das
       Salt zu verwenden, das standardmäßig erzeugt wird. Ab PHP 8.0.0 wird
       ein explizit angegebenes Salt ignoriert.
      </p>
     </div>
    </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>) - bezeichnet die
      algorithmischen Kosten, die verwendet werden sollen. Beispiele für
      diesen Wert finden Sie finden Sie auf der Seite
      <span class="function"><a href="function.crypt.php" class="function">crypt()</a></span>.
     </p>
     <p class="para">
      Wenn diese Option nicht angegeben wird, wird ein Standardwert von
      <code class="literal">12</code> verwendet. Dies ist eine gute Basis für die
      Kosten, sollte aber der verwendeten Hardware entsprechend angepasst
      werden.
     </p>
    </li>
   </ul>
  </p>
  <p class="simpara">
   Unterstützte Optionen für <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong> und
   <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong>:
  </p>
  <p class="para">
   <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>) - Maximaler Speicher
      (in Kibibytes), der zum Berechnen des Argon2-Hashes verwendet werden
      darf. Der Standardwert ist
      <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>) - Maximale Zeit, die
      die das Berechnen des Argon2-Hashes dauern darf. Der Standardwert ist
      <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>) - Anzahl der zu
      verwendenden Threads zum Berechnen des Argon2-Hashes. Der Standardwert
      ist <strong><code><a href="password.constants.php#constant.password-argon2-default-threads">PASSWORD_ARGON2_DEFAULT_THREADS</a></code></strong>.
     </p>
     <div class="warning"><strong class="warning">Warnung</strong>
      <p class="para">
       Nur verfügbar, wenn PHP libargon2 verwendet, nicht für
       libsodium-Implementierungen.
      </p>
     </div>
    </li>
   </ul>
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.password-hash-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <dl>
   
    <dt><code class="parameter">password</code></dt>
    <dd>
     <p class="para">
      Das Passwort des Benutzers.
     </p>
      <div class="caution"><strong class="caution">Achtung</strong>
       <p class="para">
        Die Verwendung von <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong> als
        Algorithmus führt dazu, dass der Parameter
        <code class="parameter">password</code> auf eine Höchstlänge von 72 Bytes
        gekürzt wird.
       </p>
      </div>
    </dd>
   
   
    <dt><code class="parameter">algo</code></dt>
    <dd>
     <p class="para">
      Eine Konstante für den <a href="password.constants.php" class="link">Passwort-Algorithmus</a>, die den Algorithmus zum hashen des Passwortes angibt.
     </p>
    </dd>
   
   
    <dt><code class="parameter">options</code></dt>
    <dd>
     <p class="para">
      Ein assoziatives Array mit Optionen. Siehe auch <a href="password.constants.php" class="link">Konstanten für Passwort-Algorithmen</a> für Informationen zu den von den jeweiligen Algorithmen unterstützten Optionen.
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.password-hash-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt den Passwort-Hash zurück.
  </p>
  <p class="para">
   Der verwendete Algorithmus, der Aufwand und das Salt werden als Teil des
   Hashes zurückgegeben. Daher sind alle Informationen, die benötigt werden,
   um den Hash zu verifizieren, darin enthalten. Dies erlaubt es der Funktion
   <span class="function"><a href="function.password-verify.php" class="function">password_verify()</a></span> den Hash zu überprüfen, ohne dass eine
   separate Speicherung für das Salt oder die Algorithmus-Informationen
   erforderlich ist.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.password-hash-changelog">
  <h3 class="title">Changelog</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Beschreibung</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.4.0</td>
       <td>
        Der Standardwert der Option <code class="literal">cost</code> des
        <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>-Algorithmus wurde von
        <code class="literal">10</code> auf <code class="literal">12</code> erhöht.
       </td>
      </tr>

      <tr>
       <td>8.3.0</td>
       <td>
        <span class="function"><strong>password_hash()</strong></span> setzt nun die zugrundeliegende
        <span class="exceptionname"><a href="class.random-randomexception.php" class="exceptionname">Random\RandomException</a></span> als
        <span class="property"><a href="class.exception.php#exception.props.previous">Exception::$previous</a></span>-Exception, wenn aufgrund
        eines Fehlers bei der Erzeugung des Salt ein
        <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> ausgelöst wird.
       </td>
      </tr>

      <tr>
       <td>8.0.0</td>
       <td>
        <span class="function"><strong>password_hash()</strong></span> gibt im Fehlerfall nicht mehr
        <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurück; stattdessens wird ein
        <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> ausgelöst, wenn der
        Passwort-Hashing-Algorithmus ungültig ist, oder ein
        <span class="classname"><a href="class.error.php" class="classname">Error</a></span>, wenn das Passwort-Hashing aufgrund eines
        unbekannten Fehlers fehlschlug.
       </td>
      </tr>

      <tr>
       <td>8.0.0</td>
       <td>
        Der Parameter <code class="parameter">algo</code> ist jetzt nullable
        (akzeptiert den NULL-Wert).
       </td>
      </tr>

      <tr>
       <td>7.4.0</td>
       <td>
        Der Parameter <code class="parameter">algo</code> erwartet nun einen <a href="language.types.string.php" class="link">String</a>,
        akzeptiert aber aus Gründen der Abwärtskompatibilität noch immer
        <a href="language.types.integer.php" class="link">Integer</a>.
       </td>
      </tr>

      <tr>
       <td>7.4.0</td>
       <td>
        Die Sodium-Erweiterung bietet eine alternative Implementierung für
        Argon2-Passwörter.
       </td>
      </tr>

      <tr>
       <td>7.3.0</td>
       <td>
        Mit <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong> wurde die Unterstützung
        für Argon2id-Passwörter hinzugefügt.
       </td>
      </tr>

      <tr>
       <td>7.2.0</td>
       <td>
        Mit <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong> wurde die Unterstützung für
        Argon2i-Passwörter hinzugefügt.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.password-hash-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>password_hash()</strong></span>-Beispiel</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">password_hash</span><span style="color: #007700">(</span><span style="color: #DD0000">"rasmuslerdorf"</span><span style="color: #007700">, </span><span style="color: #0000BB">PASSWORD_DEFAULT</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">$2y$12$4Umg0rCJwMswRw/l.SwHvuQV01coP0eWmGzd61QH2RvAOMANUBGC.</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Beispiel #2 <span class="function"><strong>password_hash()</strong></span>-Beispiel mit manuell festgelegten Kosten</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$optionen </span><span style="color: #007700">= [<br />    </span><span style="color: #FF8000">// Erhöhen der bcrypt-Kosten von 12 auf 13.<br />    </span><span style="color: #DD0000">'cost' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">13</span><span style="color: #007700">,<br />];<br />echo </span><span style="color: #0000BB">password_hash</span><span style="color: #007700">(</span><span style="color: #DD0000">"rasmuslerdorf"</span><span style="color: #007700">, </span><span style="color: #0000BB">PASSWORD_BCRYPT</span><span style="color: #007700">, </span><span style="color: #0000BB">$optionen</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">$2y$13$xeDfQumlmdm0Sco.4qmH1OGfUUmOcuRmfae0dPJhjX1Bq0yYhqbNi</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>Beispiel #3 <span class="function"><strong>password_hash()</strong></span>-Beispiel für die Suche nach angemessenen Kosten</strong></p>
    <div class="example-contents"><p>
     Mit diesem Code wird ein Benchmarking des Rechners durchgeführt, um
     festzustellen, wie hoch die Kosten sein dürfen, ohne die
     Benutzerfreundlichkeit zu beeinträchtigen. Es wird empfohlen, die höchsten
     Kosten festzulegen, die andere Operationen, die der Rechner ausführen
     soll, nicht verlangsamen. 11 ist ein guter Richtwert, mehr ist besser,
     wenn der Rechner schnell genug ist. Der nachstehende Code zielt auf eine
     Ausführungszeit von ≤ 350 Millisekunden ab, was für Systeme, die
     interaktive Anmeldungen verarbeiten, eine angemessene Verzögerung
     darstellt.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$zeitZiel </span><span style="color: #007700">= </span><span style="color: #0000BB">0.350</span><span style="color: #007700">; </span><span style="color: #FF8000">// 350 Millisekunden<br /><br /></span><span style="color: #0000BB">$kosten </span><span style="color: #007700">= </span><span style="color: #0000BB">11</span><span style="color: #007700">;<br />do {<br />    </span><span style="color: #0000BB">$kosten</span><span style="color: #007700">++;<br />    </span><span style="color: #0000BB">$start </span><span style="color: #007700">= </span><span style="color: #0000BB">microtime</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">password_hash</span><span style="color: #007700">(</span><span style="color: #DD0000">"test"</span><span style="color: #007700">, </span><span style="color: #0000BB">PASSWORD_BCRYPT</span><span style="color: #007700">, [</span><span style="color: #DD0000">"cost" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$kosten</span><span style="color: #007700">]);<br />    </span><span style="color: #0000BB">$ende </span><span style="color: #007700">= </span><span style="color: #0000BB">microtime</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br />} while ((</span><span style="color: #0000BB">$ende </span><span style="color: #007700">- </span><span style="color: #0000BB">$start</span><span style="color: #007700">) &lt; </span><span style="color: #0000BB">$zeitZiel</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Ermittelte angemessene Kosten: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$kosten </span><span style="color: #007700">- </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Ermittelte angemessene Kosten: 13</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-4">
    <p><strong>Beispiel #4 <span class="function"><strong>password_hash()</strong></span>-Beispiel, das Argon2i verwendet</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">'Argon2i-Hash: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">password_hash</span><span style="color: #007700">(</span><span style="color: #DD0000">'rasmuslerdorf'</span><span style="color: #007700">, </span><span style="color: #0000BB">PASSWORD_ARGON2I</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Argon2i-Hash: $argon2i$v=19$m=1024,t=2,p=2$YzJBSzV4TUhkMzc3d3laeg$zqU/1IN0/AogfP4cmSJI1vc8lpXRW9/S0sYY2i2jHT0</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.password-hash-notes">
  <h3 class="title">Anmerkungen</h3>
  <div class="caution"><strong class="caution">Achtung</strong>
   <p class="para">
    Es wird dringend empfohlen, kein explizites Salt für diese Funktion anzugeben.
    Wenn kein Salt angegeben wird, wird automatisch ein sicheres Salt erstellt.
   </p>
   <p class="para">
    Wie oben erwähnt, erzeugt die Angabe der Option <code class="literal">salt</code> in
    PHP 7.0.0 eine Missbilligungs-Warnung. Die Unterstützung für die manuelle
    Angabe eines Salzes wurde in PHP 8.0.0 entfernt.
   </p>
  </div>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    Es wird empfohlen, diese Funktion auf dem verwendeten Rechner zu testen und
    den Kostenparameter so einzustellen, dass die Ausführung der Funktion bei
    interaktiven Anmeldungen weniger als 350 Millisekunden dauert.
    Das Skript im obigen Beispiel hilft bei der Auswahl eines geeigneten
    bcrypt-Kostenwerts für den jeweiligen Rechner.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <span class="simpara">
    Aktualisierungen der unterstützten Algorithmen durch diese Funktion (oder
    Änderungen am Standardalgorithmus) müssen den folgenden Regeln folgen:
   </span>
   <p class="para">
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Jeder neue Algorithmus muss für mindestens 1 Vollversion im Core von
       PHP sein, bevor er zum Standard wird. Wenn also z. B. ein neuer
       Algorithmus in 7.5.5 hinzugefügt wird, wäre er erst in 7.7 als Standard
       geeignet (da 7.6 die erste Vollversion wäre). Wenn aber ein anderer
       Algorithmus in 7.6.0 hinzugefügt würde, wäre auch dieser für die
       Standardeinstellung in 7.7.0 freigegeben.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Die Voreinstellung sollte sich nur bei einer Vollversion (7.3.0, 8.0.0,
       etc) ändern und nicht bei einer Korrekturversion. Die einzige Ausnahme
       hiervon ist in einem Notfall, wenn eine kritische Sicherheitslücke in
       der aktuellen Voreinstellung gefunden wurde.
      </span>
     </li>
    </ul>
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.password-hash-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.password-verify.php" class="function" rel="rdfs-seeAlso">password_verify()</a> - &Uuml;berpr&uuml;ft, ob ein Passwort und ein Hash zusammenpassen</span></li>
    <li><span class="function"><a href="function.password-needs-rehash.php" class="function" rel="rdfs-seeAlso">password_needs_rehash()</a> - &Uuml;berpr&uuml;ft, ob der &uuml;bergebene Hash mit den &uuml;bergebenen Optionen &uuml;bereinstimmt</span></li>
    <li><span class="function"><a href="function.crypt.php" class="function" rel="rdfs-seeAlso">crypt()</a> - Einweg-String-Hashing</span></li>
    <li><span class="function"><a href="function.sodium-crypto-pwhash-str.php" class="function" rel="rdfs-seeAlso">sodium_crypto_pwhash_str()</a> - Get an ASCII-encoded hash</span></li>
   </ul>
  </p>
 </div>


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