PHP マニュアル
前のページ | 付録 N. 利用できるフィルタのリスト | 次のページ

# 暗号化フィルタ

mcrypt.* と mdecrypt.* は、libmcrypt を用いた暗号化・復号化を行います。これらのフィルタは、 mcrypt 暗号化関数 で利用可能な アルゴリズムをサポートしており、mcrypt.ciphername という名前で利用できます。ciphername の部分は、 mcrypt_module_open() に渡すのと同じアルゴリズム名 です。また、以下の 5 つのパラメータが利用できます。

表 N-1. mcrypt フィルタのパラメータ

パラメータ名 | 必須？ | 初期値 | 値の例
--- | --- | --- | ---
mode | 任意 | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | 任意 | ini_get('mcrypt.algorithms_dir') | アルゴリズムモジュールのある場所
modes_dir | 任意 | ini_get('mcrypt.modes_dir') | モードモジュールのある場所
iv | 必須 | N/A | 通常は 8, 16, あるいは 32 バイトのバイナリデータ。暗号の形式に依存する
key | 必須 | N/A | 通常は 8, 16, あるいは 32 バイトのバイナリデータ。暗号の形式に依存する

例 N-10. 3DES を用い、ファイルへの出力を暗号化する
`<?php $passphrase = 'My secret'; /* 可読形式のパスフレーズを、再現可能な * iv/key のペアに変換する */ $iv = substr(md5('iv'.$passphrase, true), 0, 8); $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key); $fp = fopen('secert-file.enc', 'wb'); stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts); fwrite($fp, 'Secret secret secret data'); fclose($fp); ?>`

例 N-11. 暗号化されたファイルを読み込む
`<?php $passphrase = 'My secret'; /* 可読形式のパスフレーズを、再現可能な * iv/key のペアに変換する */ $iv = substr(md5('iv'.$passphrase, true), 0, 8); $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $opts = array('iv'=>$iv, 'key'=>$key); $fp = fopen('secert-file.enc', 'rb'); stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_WRITE, $opts); $data = rtrim(stream_get_contents($fp)); fclose($fp); echo $data; ?>`

前のページ | ホーム | 次のページ
圧縮フィルタ | 上に戻る | サポートされるソケットトランスポートのリスト