pshken/phpseclib-bundle

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

dev-master 2015-05-26 03:34 UTC

This package is not auto-updated.

Last update: 2021-10-19 18:18:27 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下载该扩展包

$ php composer.phar update sinner/phpseclib-bundle

$ composer update sinner/phpseclib-bundle

Composer会将该扩展包安装到您的项目的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);

            //...

        }

    }