Awesome
PhpseclibBundle - PHP Secure Communications Library modified to be a Symfony2 Bundle
PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc. Created By Jim Wigginton and Modified to be a Symfony2 Bundle.
MIT-licensed pure-PHP implementations of an arbitrary-precision integer arithmetic library, fully PKCS#1 (v2.1) compliant RSA, DES, 3DES, RC4, Rijndael, AES, SSH-1, SSH-2, SFTP, and X.509
Step 1: Download phpseclib-bundle using composer
Add FOSUserBundle in your composer.json:
{
"require": {
...
"sinner/phpseclib-bundle": "dev-master"
...
}
}
Now tell composer to download the bundle by running the command:
$ php composer.phar update sinner/phpseclib-bundle
or
$ composer update sinner/phpseclib-bundle
Composer will install the bundle to your project's vendor/sinner
directory.
Step 2: Activate PHPSecLibBundle in you Symfony2 Project
Edit the appKernel.php file in the $bundles array area:
//"app/appKernel.php"
...
$bundles = array(
...
new Sinner\Phpseclib\PhpseclibBundle();
...
);
...
Step 3: Encrypt, Decrypt and Enjoy
Suppose that you have a User Entity...
/**
* Entity/Usuario.php
* */
class Usuario {
public $id;
public $nombre;
public $apellido;
public $email;
public $twitter;
}
... and you want to save the User data on Encrypted Way (For example in a Session) from your Controller
/**
* 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);
//...
}
}