カテゴリー

月別過去記事

みるくぜりー内 検索
Loading

[pear]Crypt_Blowfishの罠にはまる(´・ω・`)

テキストを復号可能な形で暗号化したい!
でも、phpの標準関数を利用することができないので何かいいものないかしら?
ということでしらべてみたらCrypt_Blowfishという便利なpearがあることが判明。
簡単なテストコードの↓はうまくいきました。
include_once 'Crypt/Blowfish.php';
$key = 'secret';
$text = 'てすてす暗号のテスト中';

$blowfish = new Crypt_Blowfish($key);
$encrypt = $blowfish->encrypt($text);
$decrypt = $blowfish->decrypt($encrypt);
echo '暗号化前のテキスト ' . $text . ' 復号化後のテキスト' . $decrypt;


がしかし本番のプログラムに組み込むと「The key is not initialized.」という
エラーがでてなぜか進めない。
どういう処理をしてたかというと暗号化&復号化の関数を作ってその中で
毎回newしてたわけです。
いろいろ調べた結果Crypt_Blowfishを2回目に作るとエラーが発生する模様。
そのテストコードがこちら。
include_once 'Crypt/Blowfish.php';
$key = 'secret';
$text = 'てすてす暗号のテスト中';

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

$blowfish = new Crypt_Blowfish($key);
$decrypt = $blowfish->decrypt($encrypt);
echo '暗号化前のテキスト ' . $text . ' 復号化後のテキスト' . $decrypt;

$decryptの中身がObjectになります。
pearのバグみつけたり!
なんてちょっと喜んでCrypt_Blowfishのバグ情報をみにいったら…
Bug #9638 Double calls to decrypt() method with same key do not reinitialize the _P array
えーっと去年の時点で情報が出てたようです(´Д⊂
しかもパッチ作ってくれてる人が居たのでさくっと解決。
めんどくさい方はこちら↓からDLできるようにしてるのでお持ち帰りください。
お持ち帰りぱっち
「お持ち帰りぱっち」にはいってるファイル
・Crypt/Blowfish/PHP.php
・Crypt/Blowfish/MCrypt.php

おかしいと思ったらまずバグ情報見ないと私みたいに
半日無駄に過ごすことになるのでお気をつけください。。。


コメント
こんにちは。初めてコメントします。
xoopsを触り始めて間もなくて
Smartyがわからないと、まともにカスタマイズができないんだなぁと
ジタバタしていてこちらにたどり着きました。

for文云々の記事、なにかしらヒントになった気がします♪

ちなみに私も女の子プログラマーです。
だけれど、システム屋寄りなプログラマーではなく
クリエイター寄りというかデザイナー寄りというか
そういうプログラマーです。

頑張ってる女の子プログラマーさんを発見して
ついついコメントしたくなっちゃいました。

走り書き&少し古い記事へのコメント
失礼いたしました<(_ _)>
  • mymy
  • 2007/02/17 3:16 PM
同じようなことでつまづいて、
あちこちググっていたらたどり着きました。
かなり助かってしまいましたw

勝手に感謝を込めて
コメント残しておきます。
どもでしたー。
  • ピィ
  • 2008/04/30 5:42 PM
コメントする








   
この記事のトラックバックURL
トラックバック