ホーム > 日記 > PEAR::Crypt_Blowfish

PEAR::Crypt_Blowfish

最近PEARライブラリの使い方が多い気がするけどキニシナイ!

Crypt_Blowfishはextensionのmcrypt導入をしているとそちらを、していない場合はPHPでの実装を利用。

これ地味に互換性ないみたいなんですけど。
IV値は初期ベクトル。
8byteのASCII文字列。
keyとivは普遍で。

PHP実装を利用。


<?php
require_once 'Crypt/Blowfish.php';

$key    = 'seacret key';
$iv     = '{a8!.at9'; // 8byte char

$password = 'password';

$blowfish =& Crypt_Blowfish::factory('cbc');

$blowfish->setKey($key, $iv);
$encrypt = $blowfish->encrypt($password);

// $encrypt is binary
echo base64_encode($encrypt) . "\n";

//$blowfish->setKey($key, $iv);
$decrypt = $blowfish->decrypt($encrypt);

// $decrypt is str_pad($password, (strlen($password) % 8)? 8 * (intval(strlen($password) / 8) + 1): strlen($password), "\0")
//$decrypt = str_replace("\0", '', $decrypt);

echo "[{$password}]=[{$decrypt}]\n"; 

CentOS5、dagからyumでインストールしたlibmcryptを利用。


<?php
require_once 'Crypt/Blowfish.php';

$key    = 'seacret key';
$iv     = '{a8!.at9'; // 8byte char

$password = 'password';

$blowfish =& Crypt_Blowfish::factory('cbc');

$blowfish->setKey($key, $iv);
$encrypt = $blowfish->encrypt($password);

// $encrypt is binary
echo base64_encode($encrypt) . "\n";

$blowfish->setKey($key, $iv);
$decrypt = $blowfish->decrypt($encrypt);

// $decrypt is str_pad($password, (strlen($password) % 8)? 8 * (intval(strlen($password) / 8) + 1): strlen($password), "\0")
//$decrypt = str_replace("\0", '', $decrypt);

echo "[{$password}]=[{$decrypt}]\n"; 

Windows、php_mcrypt.dllを利用。


<?php
require_once 'Crypt/Blowfish.php';

$key    = 'seacret key';
$iv     = '{a8!.at9'; // 8byte char

$password = 'password';

$blowfish =& Crypt_Blowfish::factory('cbc');

$blowfish->setKey($key, $iv);
$encrypt = $blowfish->encrypt($password);

// $encrypt is binary
echo base64_encode($encrypt) . "\n";

$blowfish->setKey($key, $iv);
$decrypt = $blowfish->decrypt($encrypt);

// $decrypt is str_pad($password, (strlen($password) % 8)? 8 * (intval(strlen($password) / 8) + 1): strlen($password), "\0")
$decrypt = str_replace("\0", '', $decrypt);

echo "[{$password}]=[{$decrypt}]\n"; 

カテゴリー: 日記 タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。