xxb/lib/phpaes/phpaes.class.php
2023-10-23 15:51:36 +08:00

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);
}
}