Exemplo n.º 1
0
 /**
  * @requires extension mcrypt
  */
 public function testEncryptBase64()
 {
     $crypt = new \Phalcon\Crypt();
     $crypt->setPadding(\Phalcon\Crypt::PADDING_ANSI_X_923);
     $key = substr('phalcon notice 13123123', 0, 16);
     $text = 'https://github.com/phalcon/cphalcon/issues?state=open';
     $encrypted = $crypt->encryptBase64($text, substr($key, 0, 16));
     $actual = $crypt->decryptBase64($encrypted, $key);
     $this->assertEquals($actual, $text);
     $encrypted = $crypt->encryptBase64($text, $key, TRUE);
     $actual = $crypt->decryptBase64($encrypted, $key, TRUE);
     $this->assertEquals($actual, $text);
 }
Exemplo n.º 2
0
 public function testPadding()
 {
     $texts = array();
     $key = '0123456789ABCDEF0123456789ABCDEF';
     $modes = array('ecb', 'cbc', 'cfb');
     $pads = array(\Phalcon\Crypt::PADDING_ANSI_X_923, \Phalcon\Crypt::PADDING_PKCS7, \Phalcon\Crypt::PADDING_ISO_10126, \Phalcon\Crypt::PADDING_ISO_IEC_7816_4, \Phalcon\Crypt::PADDING_ZERO, \Phalcon\Crypt::PADDING_SPACE);
     for ($i = 1; $i < 128; ++$i) {
         $texts[] = str_repeat('A', $i);
     }
     $crypt = new \Phalcon\Crypt();
     $crypt->setCipher(MCRYPT_RIJNDAEL_256)->setKey($key);
     foreach ($pads as $padding) {
         $crypt->setPadding($padding);
         foreach ($modes as $mode) {
             $crypt->setMode($mode);
             foreach ($texts as $text) {
                 $encrypted = $crypt->encrypt($text);
                 $actual = $crypt->decrypt($encrypted);
                 $this->assertEquals($text, $actual);
             }
         }
     }
 }
Exemplo n.º 3
0
 /**
  * Set the crypt service
  *
  * @return void
  */
 protected function crypt()
 {
     $config = $this->_config;
     $this->_di->set('crypt', function () use($config) {
         $crypt = new \Phalcon\Crypt();
         $crypt->setKey($config->crypt->key);
         $crypt->setPadding(\Phalcon\Crypt::PADDING_ZERO);
         return $crypt;
     });
 }
Exemplo n.º 4
0
use Phalcon\DI\FactoryDefault, Phalcon\Mvc\View, Phalcon\Mvc\Url as UrlResolver, Phalcon\Mvc\Model\MetaData\Files as MetaDataFiles, Phalcon\Mvc\Model\MetaData\Memory as MetaDataMemory, Phalcon\Db\Adapter\Pdo\Mysql as DbAdapter, Phalcon\Events\Manager as EventsManager, Phalcon\Queue\Beanstalk, Phalcon\Logger, Phalcon\Logger\Adapter\File as FileLogger;
/**
 * The FactoryDefault Dependency Injector automatically register the right services providing a full stack framework
 */
$di = new FactoryDefault();
//inject config
$di->set('config', $config, true);
/**
 * set crypt, 在cookies使用时候可以进行加密
 */
$di->set('crypt', function () {
    $crypt = new Phalcon\Crypt();
    /**
     * 别用PADDING_DEFAULT影响cookies的取值
     */
    $crypt->setPadding(\Phalcon\Crypt::PADDING_ZERO);
    $crypt->setKey('?.aX/^~j1V$#1dj7');
    // crypt string 必须为 16 , 24 ,32 三种长度
    return $crypt;
});
/**
 * 设置cookies和加密模式
 */
$di->setShared('cookies', function () {
    $cookies = new Phalcon\Http\Response\Cookies();
    //    $cookies->useEncryption(false); //如果为true则使用下面的crypt加密 , 如果使用加密那速度非常慢
    return $cookies;
});
/**
 * The URL component is used to generate all kind of urls in the application
 */