/** * 忽略不能正常反序列化的操作,并且在不能预期解密的情况下返回原文 */ public function decrypt($data, $key) { $decryptData = base64_decode($data); if ($decryptData === FALSE || $decryptData === '') { return $data; } $decryptData = $this->mcrypt->decrypt($decryptData, $key); $decryptData = @unserialize($decryptData); if ($decryptData === FALSE) { return $data; } return $decryptData; }
/** * @dataProvider provideComplicateData */ public function testWorkWithMoreComplicateData($data) { $mcrypt = new PhalApi_Crypt_Mcrypt('12345678'); $key = 'phalapi'; $encryptData = $mcrypt->encrypt($data, $key); $decryptData = $mcrypt->decrypt($encryptData, $key); $this->assertEquals($data, $decryptData); }