Codeigniterのencrypt->decodeで復号化できずに少しはまる…

Codeigniterのencrypt->decodeで復号化できずに少しはまる…

CodeIgniterで暗号・複合をしてみた時にdecodeできないことがありました。

↓暗号化してるコード
$this->load->library('encrypt');
$this->encrypt->set_cipher('MCRYPT_BLOWFISH');
$this->encrypt->encode('plane_text', $CI->config->aff_item('encryption_key'));

↓復号化しているコード
$this->load->library('encrypt');
$this->encrypt->set_cipher('MCRYPT_BLOWFISH');
$plaintext_string = $this->encrypt->decode($result_code_blowfish);

config.phpにencryption_keyを定義していて、暗号化する時にencodeの第二引数で指定してあげてる感じです。
これをやると復号化した結果と暗号する前の元のplane textが異なる…
むしろ復号化すると文字化けしたみたいになる…
最初は復号化する前に
$this->encrypt->set_cipher('MCRYPT_BLOWFISH');
を付けていなかったのが原因か?と思ってつけてみたけど、それでも復号化できないっ
使い方が間違ってるのかな、と思って再度リファレンスを確認。
上から下までさらーっとみてみて、ちょっと気になることが。
「設定ファイルに指定してあるキーを使用したくない場合は、オプションで、第2引数に暗号化キーを指定することができます:」
確かにこう書いてあったから第二引数に指定して暗号化したけど、キーの設定のところでこうも書いてある。
「暗号アルゴリズムを最大限利用するには、キーは32文字の長さ(128ビット)にする必要があります。キーは、大文字小文字や数字をできる限りランダムに混合させる必要があります。キーは単純な文字列にしてはいけません。暗号化を安全にするためには、可能な限りランダムにする必要があります。
キーはapplication/config/config.php の中に保存するか、あるいは、独自の保存方法を設計して、暗号化/複合化のときに動的にキーを渡すかのどちらかになります。
キーをapplication/config/config.php に保存するには、ファイルを開き、下記のようにセットします:」


「独自の保存方法を設計して、暗号化/複合化のときに動的にキーを渡すかのどちらかになります。」


あれ。
例ではdecodeの第二引数にキーを指定していないし、そもそもdecodeの方にはそんな事が載っていないので指定しなくても大丈夫かと思いきや両方指定してあげないといけないのね…
PEARのCrypt_Blowfishでは

$blowfish = new Crypt_Blowfish($key);
$encrypt = $blowfish->encrypt($text);
$decrypt = $blowfish->decrypt($encrypt);

と最初にキーを指定してあげるだけでよかったのでてっきりこっちでも必要ないのかと思っていたら。。。
再度ハマらないようにメモっときます。