Help us understand the problem. What is going on with this article?

mcrypt非推奨による暗号化復号化導入

More than 1 year has passed since last update.

php7.2でmcryptが非推奨

PEAR::Crypt_Blowfishを使っていると警告が溢れてくるようになったので対策。

必要なライブラリを探す

Composerで入れられるパッケージがあるっぽいので試す

webiny/crypt

#足りないライブラリを追加
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をデコードできるかは別途要検証…

onomame
C#を使うのはVisual Studioがあるから Javaを使うのはVisual Studioを使う必要が無いから PHPを使うのはコンパイル環境がなくていいから Perl/Rubyを使わないのは良さを知らないから Pythonを使うのはAWSでサーバーレスで動くから
http://materialbook.futh.net
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away