<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.password.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'password.constants.php',
    1 => '定義済み定数',
    2 => '定義済み定数',
  ),
  'up' => 
  array (
    0 => 'book.password.php',
    1 => 'パスワードのハッシュ',
  ),
  'prev' => 
  array (
    0 => 'password.installation.php',
    1 => 'インストール手順',
  ),
  'next' => 
  array (
    0 => 'ref.password.php',
    1 => 'Password Hashing 関数',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/password/constants.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="password.constants" class="appendix">
 <h1 class="title">定義済み定数</h1>

 <p class="simpara">
以下の定数は、PHP コアに含まれており、常に利用可能です。
</p>

 <p class="para">
  <dl>
   
    <dt id="constant.password-bcrypt">
     <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      <strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong> を使うと、
      <strong><code><a href="string.constants.php#constant.crypt-blowfish">CRYPT_BLOWFISH</a></code></strong> アルゴリズムで新たなパスワードハッシュを作ります。
     </p>
     <p class="para">
      これは常に、&quot;$2y$&quot; crypt フォーマットを使ったハッシュになります。
      長さは常に 60 文字です。
     </p>
     <p class="para">
      サポートするオプション
     </p>
     <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>) - パスワードのハッシュに使うソルトを手動で設定します。
        これは、自動生成されたソルトを上書きすることに注意しましょう。
       </p>
       <p class="para">
        省略した場合は、パスワードをハッシュするたびに <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span>
        がランダムなソルトを自動生成します。これは意図したとおりの操作モードです。
        および PHP 7.0.0 以降でソルト・オプションは非推奨になりました。
       </p>
      </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>) - 利用するアルゴリズムのコストを表します。
        値の例については <span class="function"><a href="function.crypt.php" class="function">crypt()</a></span> のページを参照ください。
       </p>
       <p class="para">
        省略した場合のデフォルトは <code class="literal">12</code> です。この値でもかまいませんが、
        ハードウェアの性能が許すならもう少し高くすることもできます。
       </p>
      </li>
     </ul>
    </dd>
   
   
    <dt id="constant.password-bcrypt-default-cost">
     <strong><code><a href="password.constants.php#constant.password-bcrypt-default-cost">PASSWORD_BCRYPT_DEFAULT_COST</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
     </p>
     <p class="para">
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2i">
     <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong> を使うと、
      Argon2i アルゴリズムで新たなパスワードハッシュを作ります。
     </p>
     <p class="para">
      サポートするオプション
     </p>
     <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>) -
        Argon2 ハッシュの計算に用いるメモリの最大値 (キロバイト数) を設定します。
        デフォルトは <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>) -
        Argon2 ハッシュの計算にかける時間の最大値を設定します。
        デフォルトは <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>) -
        Argon2 ハッシュの計算に用いるスレッド数を設定します。
        デフォルトは <strong><code><a href="password.constants.php#constant.password-argon2-default-threads">PASSWORD_ARGON2_DEFAULT_THREADS</a></code></strong> です。
        libargon2 を使う場合のみ利用可能で、
        libsodium の実装には含まれていません。
       </p>
      </li>
     </ul>
     <p class="para">
      PHP 7.2.0 以降で利用可能です。
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2id">
     <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong> を使うと、
      Argon2id アルゴリズムで新たなパスワードハッシュを作ります。
      サポートされるオプションは、
      <a href="password.constants.php#constant.password-argon2i" class="link"><strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong></a>
      と同じです。
     </p>
     <p class="para">
      PHP 7.3.0 以降で利用可能です。
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-default-memory-cost">
     <strong><code><a href="password.constants.php#constant.password-argon2-default-memory-cost">PASSWORD_ARGON2_DEFAULT_MEMORY_COST</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
      ハッシュの計算に用いるメモリのデフォルト値。
     </p>
     <p class="para">
      PHP 7.2.0 以降で利用可能です。
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-default-time-cost">
     <strong><code><a href="password.constants.php#constant.password-argon2-default-time-cost">PASSWORD_ARGON2_DEFAULT_TIME_COST</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
      ハッシュの計算にかける時間のデフォルト値。
     </p>
     <p class="para">
      PHP 7.2.0 以降で利用可能です。
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-default-threads">
     <strong><code><a href="password.constants.php#constant.password-argon2-default-threads">PASSWORD_ARGON2_DEFAULT_THREADS</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
    </dt>
    <dd>
     <p class="para">
      Argon2lib が用いるデフォルトのスレッド数。
      libsodium の実装では利用できません。
     </p>
     <p class="para">
      PHP 7.2.0 以降で利用可能です。
     </p>
    </dd>
   
   
    <dt id="constant.password-argon2-provider">
     <strong><code><a href="password.constants.php#constant.password-argon2-provider">PASSWORD_ARGON2_PROVIDER</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
     </p>
     <p class="para">
      PHP 7.4.0 以降で利用可能です。
     </p>
    </dd>
   
   
    <dt id="constant.password-default">
     <strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong>
     (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
    </dt>
    <dd>
     <p class="para">
      アルゴリズムを指定しなかったときのデフォルトとして使うアルゴリズム。
      PHP のバージョンが上がるときに、
      その時点でより強力なハッシュアルゴリズムに対応していればデフォルトが変わる可能性があります。
     </p>
     <p class="para">
      この定数の値は、今後変わる可能性があることに注意しましょう。
      つまり、生成されるハッシュの長さも変わる可能性があるということです。
      したがって、<strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong> を使う場合は、
      ハッシュの格納先は任意の長さのハッシュを格納できるようにしておく必要があります。
      お勧めの長さは <code class="literal">255</code> バイトです。
     </p>
     <span class="simpara">
      現状は、<strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong> のエイリアスです。
     </span>
    </dd>
   
  </dl>
 </p>

 <p class="formalpara">
  <h5 class="title">変更履歴</h5>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>バージョン</th>
       <th>説明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.4.0</td>
       <td>
        パスワードのアルゴリズムのID (<strong><code><a href="password.constants.php#constant.password-bcrypt">PASSWORD_BCRYPT</a></code></strong>, <strong><code><a href="password.constants.php#constant.password-argon2i">PASSWORD_ARGON2I</a></code></strong>,
        <strong><code><a href="password.constants.php#constant.password-argon2id">PASSWORD_ARGON2ID</a></code></strong>, <strong><code><a href="password.constants.php#constant.password-default">PASSWORD_DEFAULT</a></code></strong>)
        は、<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> でした。
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </p>

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