55 lines
1.3 KiB
PHP
55 lines
1.3 KiB
PHP
<?php
|
|
define('PHPAES_ROOT', dirname(__FILE__));
|
|
|
|
include PHPAES_ROOT . '/phpseclib/Crypt/Common/BlockCipher.php';
|
|
include PHPAES_ROOT . '/phpseclib/Crypt/AES.php';
|
|
include PHPAES_ROOT . '/phpseclib/Crypt/Random.php';
|
|
class phpAES
|
|
{
|
|
CONST MODE_CTR = -1;
|
|
CONST MODE_ECB = 1;
|
|
CONST MODE_CBC = 2;
|
|
const MODE_CFB = 3;
|
|
const MODE_OFB = 4;
|
|
const MODE_STREAM = 5;
|
|
|
|
const ENGINE_INTERNAL = 1;
|
|
const ENGINE_EVAL = 2;
|
|
const ENGINE_MCRYPT = 3;
|
|
const ENGINE_OPENSSL = 4;
|
|
|
|
public function init($key, $iv)
|
|
{
|
|
$this->aes = new AES(self::MODE_CBC);
|
|
$this->aes->setKey($key);
|
|
$this->aes->setIV($iv);
|
|
}
|
|
|
|
public function encrypt($output)
|
|
{
|
|
return $this->aes->encrypt($output);
|
|
}
|
|
|
|
public function decrypt($input)
|
|
{
|
|
return $this->aes->decrypt($input);
|
|
}
|
|
|
|
public function getEngine()
|
|
{
|
|
switch($this->aes->getEngine())
|
|
{
|
|
case self::ENGINE_INTERNAL : return 'ENGINE_INTERNAL';
|
|
case self::ENGINE_EVAL : return 'ENGINE_EVAL';
|
|
case self::ENGINE_MCRYPT : return 'ENGINE_MCRYPT';
|
|
case self::ENGINE_OPENSSL : return 'ENGINE_OPENSSL';
|
|
default: return 'error';
|
|
}
|
|
}
|
|
|
|
public static function randomString($length)
|
|
{
|
|
return Random::string($length);
|
|
}
|
|
}
|