If you write error-checking into your code, be warned that this function returns FALSE on some errors, and 0 on success, hence
mcrypt_generic_init( $a, $b, $c ) or die( "Oops");
ALWAYS exits with the error message "Oops", and
(mcrypt_generic_init( $a, $b, $c ) >= 0 ) or die( "Oops");
Sometimes continues when mcrypt_generic_init() actually failed.
To check for successful init use something like:
$s = mcrypt_generic_init( $a, $b, $c );
if( ($s < 0) || ($s === false))
die( "Really an error" );
mcrypt_generic_init
(PHP 4 >= 4.0.2, PHP 5)
mcrypt_generic_init — 暗号化に必要な全てのバッファを初期化する
説明
int mcrypt_generic_init
( resource
$td
, string $key
, string $iv
)mcrypt_generic() または mdecrypt_generic() をコールする前に、 常にこの関数をコールする必要があります。
パラメータ
-
td -
暗号化記述子。
-
key -
キーの最大長は、mcrypt_enc_get_key_size() を コールした際に得られるキー長であり、この値より小さな値は全て有効です。
-
iv -
IV は通常そのアルゴリズムのブロック長と同じ大きさですが、 mcrypt_enc_get_iv_size() をコールする ことにより、その大きさを得る必要があります。IV は ECB では 無視されます。IV は CFB、CBC、STREAM、nOFB では必須です。 IV はランダムで一意である必要があります(しかし、秘密ではある必要は ありません)。暗号化と復号で同じ IV を使用する必要があります。 IV を使用したくない場合にはゼロに設定しますが、これは推奨されません。
返り値
この関数は、エラー時に負の値を返します。キー長が不正な場合に
-3、メモリの確保に問題があった場合に -4、そしてそれ以外の返り値は
その他のエラーとなります。エラーが警告を発生させた場合、それが
表示されます。間違ったパラメータが渡された場合には FALSE
が返されます。
cnww
25-Aug-2006 11:14
