sinner/phpseclib-bundle

PHP安全通信库 - RSA、AES、SSH2、SFTP、X.509等纯PHP实现。由Jim Wigginton创建,并修改为Symfony2 Bundle。

dev-master 2016-10-03 15:25 UTC

This package is not auto-updated.

Last update: 2024-09-22 03:22:29 UTC


README

PHP安全通信库 - RSA、AES、SSH2、SFTP、X.509等纯PHP实现。由Jim Wigginton创建,并修改为Symfony2 Bundle。

MIT授权的纯PHP实现,包括任意精度整数算术库、完全符合PKCS#1 (v2.1)规范的RSA、DES、3DES、RC4、Rijndael、AES、SSH-1、SSH-2、SFTP和X.509。

步骤1:使用composer下载phpseclib-bundle

在composer.json中添加FOSUserBundle

{
    "require": {
        ...
        "sinner/phpseclib-bundle": "dev-master"
        ...
    }
}

现在运行以下命令告诉composer下载bundle:

$ php composer.phar update sinner/phpseclib-bundle

或者

$ composer update sinner/phpseclib-bundle

Composer会将bundle安装到项目的vendor/sinner目录。

步骤2:在您的Symfony2项目中激活PHPSecLibBundle

编辑appKernel.php文件中的$bundles数组区域

    //"app/appKernel.php"
    ...
    $bundles = array(
	...
	new Sinner\Phpseclib\PhpseclibBundle();
	...
    );
    ...

步骤3:加密、解密并享受

假设您有一个用户实体...

    /**
     * Entity/Usuario.php
     * */   
    
    class Usuario {

        public $id;

        public $nombre;

        public $apellido;

        public $email;

        public $twitter;

    }

...并且您想在控制器中以加密方式(例如在会话中)保存用户数据

    /**
     * Controller/DefaultController.php
     * */

    use Sinner\Phpseclib\Crypt\Crypt_TripleDES as TripleDES;
    
    Class DefaultController extends Controller{

        public fucntion indexAction(){

             //...

            $usuario_obj = new Usuario();
            $usuario_obj->id = 1;
            $usuario_obj->nombre = 'José Gabriel';
            $usuario_obj->apellido = 'González Pérez';
            $usuario_obj->email = 'jgabrielsinner10@gmail.com';
            $usuario_obj->twitter = '@JGabrielTupac';

            const KEY_ENCRYPT = '548c286a61462d896573567b7a30335d4959427e5c7a675e325b6c7a7c';

            $_KEY_ENCRYPT = KEY_ENCRYPT;

            $encrypter = new TripleDES();
            $encrypter->setKey($_KEY_ENCRYPT);
            $usuario_obj_encrypt = $encrypter->encrypt(serialize($usuario_obj));
            $usuario = unserialize($encrypter->decrypt($usuario_obj_encrypt));

            var_dump($usuario_obj_encrypt);

            var_dump($usuario);

            //...

        }

    }