mirror of
https://github.com/php/doc-ja.git
synced 2026-03-30 11:02:18 +02:00
git-svn-id: https://svn.php.net/repository/phpdoc/ja/trunk@198957 c90b9560-bf6c-de11-be94-00142212c4b1
199 lines
9.5 KiB
XML
199 lines
9.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision: 1.7 $ -->
|
|
<!-- EN-Revision: 1.16 Maintainer: hirokawa Status: ready -->
|
|
<!-- Purpose: mathcrypto.crypto -->
|
|
<!-- Membership: bundled, external -->
|
|
|
|
<reference id="ref.mcrypt">
|
|
<title>Mcrypt 暗号化関数</title>
|
|
<titleabbrev>mcrypt</titleabbrev>
|
|
|
|
<partintro>
|
|
<section id="mcrypt.intro">
|
|
&reftitle.intro;
|
|
<para>
|
|
この関数は、CBC, OFB, CFB, ECB 暗号モードの DES, TripleDES, Blowfish
|
|
(デフォルト), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2
|
|
, GOST のような広範なブロックアルゴリズムをサポートする mcrypt
|
|
ライブラリへのインターフェースです。加えて、"フリーではない" と思われる
|
|
RC6 および IDEA もサポートします。
|
|
</para>
|
|
</section>
|
|
|
|
<section id="mcrypt.requirements">
|
|
&reftitle.required;
|
|
<para>
|
|
ここで示す関数は、<ulink url="&url.mcrypt;">mcrypt</ulink> を
|
|
使用して動作します。この拡張モジュールを使用するには、<ulink
|
|
url="&url.mcrypt;">&url.mcrypt;</ulink> から <filename>libmcrypt-x.x.tar.gz</filename>
|
|
をダウンロードし、含まれているインストール用の指示に従ってください。
|
|
Windows ユーザは、コンパイル済みの mcrypt バイナリを
|
|
<ulink url="&url.mcrypt.windows;">&url.mcrypt.windows;</ulink>
|
|
から入手することが可能です。
|
|
</para>
|
|
<simpara>
|
|
PHP 5.0.0 以降では、libmcrypt のバージョン 2.5.6 以降が必要です。
|
|
</simpara>
|
|
<para>
|
|
libmcrypt 2.4.x とリンクした場合、加えてブロックアルゴリズム:
|
|
CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT および次のストリーム暗号:
|
|
ENIGMA (crypt), PANAMA, RC4, WAKE がサポートされます。
|
|
libmcrypt 2.4.x を使用した場合、暗号モード nOFB もサポートされます。
|
|
</para>
|
|
</section>
|
|
|
|
&reference.mcrypt.configure;
|
|
|
|
&reference.mcrypt.ini;
|
|
|
|
<section id="mcrypt.resources">
|
|
&reftitle.resources;
|
|
&no.resource;
|
|
</section>
|
|
|
|
&reference.mcrypt.constants;
|
|
|
|
<section id="mcrypt.ciphers">
|
|
<title>Mcrypt 暗号</title>
|
|
<para>
|
|
以下に、mcrypt 拡張モジュールにより現在サポートされている暗号のリストを
|
|
示します。サポートされる暗号の完全なリストについては、
|
|
<filename>mcrypt.h</filename> の最後にある define を参照ください。
|
|
mcrypt-2.2.x API に関する一般的な規則は、
|
|
MCRYPT_暗号名で PHP から暗号をアクセス可能であるということです。
|
|
mcrypt-2.4.x および mcrypt-2.5.x の API についてもこれらの定数は
|
|
使用できますが、<function>mcrypt_module_open</function> を
|
|
コールする際に文字列で暗号名を指定することも可能です。
|
|
<itemizedlist>
|
|
<listitem><simpara>MCRYPT_3DES</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x のみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_ARCFOUR (libmcrypt > 2.4.x のみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_BLOWFISH</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_CAST_128</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_CAST_256</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_CRYPT</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_DES</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_ENIGMA (libmcrypt > 2.4.x のみ、
|
|
MCRYPT_CRYPTへのエイリアス)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_GOST</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_IDEA (non-free)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_LOKI97 (libmcrypt > 2.4.x のみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_MARS (libmcrypt > 2.4.xのみ, non-free)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_PANAMA (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RC2</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RC4 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RC6 (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RC6_128 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RC6_192 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_RC6_256 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SAFER64</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SAFER128</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SAFERPLUS (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SERPENT(libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SERPENT_128 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SERPENT_192 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SERPENT_256 (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_SKIPJACK (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_TEAN (libmcrypt 2.2.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_THREEWAY</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_TRIPLEDES (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_TWOFISH (mcrypt 2.x より古いバージョン、
|
|
またはmcrypt > 2.4.xの場合)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_TWOFISH128 (TWOFISHxxx は 2.x の新しいバージョンで使用可能ですが、2.4.x では使用できません)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_TWOFISH192</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_TWOFISH256</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_WAKE (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
<listitem><simpara>MCRYPT_XTEA (libmcrypt > 2.4.xのみ)</simpara></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
(CFB および OFB モードでは)それぞれの暗号関数に初期化ベクトル(IV)
|
|
を指定する必要があり、(CBC モードでは)IV を指定することが可能です。
|
|
IV はユニークである必要があり、暗号化/復号化の際に同じである
|
|
必要があります。暗号化されて保存されたデータの場合、関数の出力を
|
|
(ファイル名の MD5 キーのように) 保存されたデータの位置を表す
|
|
インデックスとして使用することができます。もしくは、暗号化された
|
|
データと共に IV を渡すことができます(このトピックに関する議論については、
|
|
&book.applied.cryptography; の 9.3 章を参照ください)。
|
|
</para>
|
|
</section>
|
|
|
|
<section id="mcrypt.examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
mcrypt は、上に示した暗号を用いて暗号化および復号化を
|
|
行うことが可能です。libmcrypt-2.2.xとリンクした場合、4つの重要な
|
|
mcrypt コマンド (<function>mcrypt_cfb</function>,
|
|
<function>mcrypt_cbc</function>,<function>mcrypt_ecb</function>,
|
|
<function>mcrypt_ofb</function>) は、MCRYPT_ENCRYPT および
|
|
MCRYPT_DECRYPT という 2つのモードの両方で実行可能です。
|
|
<example>
|
|
<title>入力値を 2.2.x において ECB モードの TripleDES で暗号化する</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$key = "this is a secret key";
|
|
$input = "Let us meet at 9 o'clock at the secret place.";
|
|
|
|
$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
この例では、<literal>$encrypted_data</literal> に文字列として
|
|
暗号化されたデータが返されます。
|
|
</para>
|
|
<para>
|
|
libmcrypt 2.4.x または 2.5.x とリンクした場合、上記の関数も利用可能
|
|
ですが、新しい関数を使用されることを推奨します。
|
|
<example>
|
|
<title>2.4.x 以降において ECB モードで TripleDES により入力を暗号化する</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$key = "this is a secret key";
|
|
$input = "Let us meet at 9 o'clock at the secret place.";
|
|
|
|
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
|
|
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
|
|
mcrypt_generic_init($td, $key, $iv);
|
|
$encrypted_data = mcrypt_generic($td, $input);
|
|
mcrypt_generic_deinit($td);
|
|
mcrypt_module_close($td);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
この例は、<literal>$encrypted_data</literal> に文字列として
|
|
暗号化されたデータを取得します。詳細な例については、
|
|
<function>mcrypt_module_open</function> を参照してください。
|
|
</para>
|
|
</section>
|
|
</partintro>
|
|
|
|
&reference.mcrypt.functions;
|
|
|
|
</reference>
|
|
<!-- 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:"../../../manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|
|
|