$app["encrypt_method"] = "aes128";
$app["secret_key"] = "xxxxx"; // codificado en md5
$app["secret_iv"] = "xxxxx"; // codificado en md5
$app["key"] = hash('sha256', $app["secret_key"]);
$app["iv"] = substr(hash('sha256', $app["secret_iv"]), 0, 16);
$app['twig'] = $app->share($app->extend('twig', function($twig) {
$twig->addFilter(new Twig_SimpleFilter('sslencrypt', function ($str) {
$encrypt_method = "aes128";
$secret_key = 'd2ae49e3b63ed418b9fc25105cd964d4';
$secret_iv = 'fb68e879fab1db2a2ce30dbf6f9b3743';
$key = hash('sha256', $secret_key);
$iv = substr(hash('sha256', $secret_iv), 0, 16);
$output = openssl_encrypt($str, $encrypt_method, $key, 0, $iv);
return base64_encode($output);
}));
return $twig;
}));
$app['twig'] = $app->share($app->extend('twig', function($twig) {
$twig->addFilter(new Twig_SimpleFilter('ssldecrypt', function ($str) {
$encrypt_method = "aes128";
$secret_key = 'd2ae49e3b63ed418b9fc25105cd964d4';
$secret_iv = 'fb68e879fab1db2a2ce30dbf6f9b3743';
$key = hash('sha256', $secret_key);
$iv = substr(hash('sha256', $secret_iv), 0, 16);
$output = openssl_decrypt(base64_decode($str), $encrypt_method, $key, 0, $iv);
return $output;
}));
return $twig;
}));
Crear una clase para encriptar que contenga:
function encriptar(Application $app, $cad) {
return base64_encode(openssl_encrypt($cad, $app["encrypt_method"], $app["key"], 0, $app["iv"]));
}
function desencriptar(Application $app, $cad) {
return openssl_decrypt(base64_decode($cad), $app["encrypt_method"], $app["key"], 0, $app["iv"]);
}
Desde cualquier controlador:
$CEncriptar = new diclases\CEncriptar();
$en = $CEncriptar->encriptar($app, "En un lugar de la Mancha");
echo "EN:".$en;
$de = $CEncriptar->desencriptar($app, $en);
echo "DE:".$de;
En las views:
{{loquesea|sslencrypt}}
{{loquesea|ssldecrypt}}
No hay comentarios:
Publicar un comentario