php7.2でmcryptが非推奨
PEAR::Crypt_Blowfishを使っていると警告が溢れてくるようになったので対策。
必要なライブラリを探す
Composerで入れられるパッケージがあるっぽいので試す
#足りないライブラリを追加
sudo apt install php-xml php-mbstring
#Composerに追加
composer require webiny/crypt
#↓Composerにpathが通ってないなら↓
#php composer.phar require webiny/crypt
サンプルコード
require __DIR__ . '/vendor/autoload.php';
class MyClass
{
use Webiny\Component\Crypt\CryptTrait;
function myMethod(){
$key = 'aqwsedrfgthyjuikolp';
$text = 'money-money-money';
$encrypted = $this->crypt()->encrypt($text, $key);
try{
$decrypted = $this->crypt()->decrypt($encrypted, $key);
$decryptedBad = $this->crypt()->decrypt($decrypted, 'bad-bad-bad');
} catch (\Exception $e) {
var_dump($e->getMessage());
}
var_dump($encrypted);
// string(64) "HhgH~省略~vaYz/"
var_dump($decrypted);
// string(17) "money-money-money"
var_dump($decryptedBad);
// bool(false)
}
}
$m = new MyClass();
$m->myMethod();
とりあえず動いた
古いblowfishをデコードできるかは別途要検証…