mcrypt_generic
データを暗号化する
&warn.deprecated.function-7-1-0.removed-7-2-0;
&reftitle.description;
stringmcrypt_generic
resourcetd
stringdata
この関数は、データを暗号化します。データ長を n * blocksize とする
ために、データは "\0" で埋められます。
この関数は、暗号化されたデータを返します。
データのパディングが行われるため、返される文字列の長さは
入力よりも長いことがあることに注意してください。
暗号化したデータをデータベースに格納する場合は、mcrypt_generic
が返す文字列全てを格納することを忘れないでください。さもないと、
文字列を適切に復号できなくなります。もとの文字列が 10 文字で
ブロックサイズが 8 (ブロックサイズを調べるには
mcrypt_enc_get_block_size を使用します)
だった場合、データベースのフィールドには少なくとも 16 文字が
必要です。mdecrypt_generic が返す文字列も
16 文字となることに注意しましょう。埋められた文字を取り除くには...
rtrim($str, "\0") を使用します。
もし MySQL データベースにデータを格納する場合は、
varchar フィールドに値を挿入する際に末尾のスペースが取り除かれることを
覚えておきましょう。暗号化されたデータの最後にスペース(ASCII 32)が
含まれていた場合、この処理によってデータが破壊されてしまいます。
かわりに tinyblob/tinytext (あるいはより大きな) フィールドを
使用してください。
&reftitle.parameters;
td
暗号化記述子。
この関数をコールする前には、常にキーと IV を用いて
mcrypt_generic_init で暗号化ハンドルを
初期化しておくべきです。暗号化が終了したら、
mcrypt_generic_deinit をコールして
暗号化バッファを開放すべきです。使用例は
mcrypt_module_open を参照ください。
data
暗号化するデータ。
&reftitle.returnvalues;
暗号化したデータを返します。
&reftitle.seealso;
mdecrypt_generic
mcrypt_generic_init
mcrypt_generic_deinit