1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-24 07:02:08 +01:00
Files
archived-doc-ja/reference/hash/book.xml

82 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a19139232af73a3c2054fcf5a687640ade63a393 Maintainer: mumumu Status: ready -->
<book xml:id="book.hash" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="interactive">
<?phpdoc extension-membership="core" ?>
<title>HASH メッセージダイジェストフレームワーク</title>
<titleabbrev>Hash</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.hash">
&reftitle.intro;
<para>
この拡張モジュールは、様々なハッシュアルゴリズムを使って任意の長さのメッセージを直接、または徐々に処理する関数を提供します。可能な処理には、たとえば <acronym>HMAC</acronym> 値の生成や、<acronym>HKDF</acronym><acronym>PBKDF2</acronym> を含む、鍵の導出処理があります。
</para>
<para>
ハッシュアルゴリズムには、大きく分けて3つのカテゴリがあります。完全な一覧は <function>hash_algos</function> を参照ください。
<itemizedlist>
<listitem>
<simpara>
チェックサムアルゴリズム(例: <literal>"crc32b"</literal>, <literal>"adler32"</literal>):
通信エラーを検出するときなどに役立つチェックサムを計算するのに使えます。これらは大抵、とても高速です。また、衝突したり、容易に"推測可能な" 値を生成できたりするので、暗号には完全に不向きです。
</simpara>
</listitem>
<listitem>
<simpara>
非暗号化アルゴリズム(例:xxHash ファミリ):
ハッシュテーブルで使うハッシュ値を計算するのに用いられます。よって、任意の文字列の入力に対して、うまく分散したハッシュ値を生成するように設計されています。これらも一般的に高速ですが、暗号化の処理には向いていません。
</simpara>
</listitem>
<listitem>
<simpara>
暗号化アルゴリズム(例:SHA-2 ファミリ):
入力そのものを表現するものの、それが推測できず、かつ衝突もしにくいハッシュ値を生成するように設計されています。パフォーマンスは二の次とされていますが、モダンなハードウェアはこれらのアルゴリズムの処理を特別に支援するものがあり、PHP も利用可能なときはそれらを使おうとします。
</simpara>
<simpara>
<acronym>NIST</acronym> の Computer Security Resource Center には、
<link xlink:href="&url.hash.nist-hash-functions;">アメリカの連邦通信処理規格(FIPS) が現在認定しているアルゴリズムの説明</link> があります。
</simpara>
<caution>
<para>
<literal>"md4"</literal>
<literal>"md5"</literal>, <literal>"sha1"</literal> のような
初期の暗号化アルゴリズムの中には、既に衝突しやすいことが証明されているものがあります。こうしたアルゴリズムを使うことは、暗号を用いるアプリケーションでは既に推奨されません。
</para>
</caution>
</listitem>
</itemizedlist>
</para>
<para>
パスワードを処理する際にハッシュ関数を使うためのベストプラクティスに関する情報は、<link linkend="faq.passwords">パスワードのハッシュに関するFAQ</link> も参照ください。
</para>
</preface>
<!-- }}} -->
&reference.hash.setup;
&reference.hash.constants;
&reference.hash.hashcontext;
&reference.hash.reference;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->