pierrre / encrypter-bundle
此包已被弃用且不再维护。未建议替代包。
此包的最新版本(dev-master)没有可用的许可证信息。
为 Symfony2 提供易于使用的加密服务
dev-master
2013-12-27 08:56 UTC
Requires
- php: >=5.3.2
- ext-mcrypt: *
- symfony/symfony: >=2.1
Requires (Dev)
This package is not auto-updated.
Last update: 2020-01-19 13:37:39 UTC
README
PierrreEncrypterBundle 为 Symfony2 提供易于使用的加密服务。
功能
先决条件
确保已安装 PHP Mcrypt 扩展。
不要在生产环境中使用
此库不适用于生产环境使用(因此没有稳定的标签)。它尚未经过密码学专家的审查。
安装
此安装过程旨在与 Symfony2 一起使用,但您可以对其进行修改以使用子模块。
步骤 1: 下载包
在您的 deps
文件中添加以下行
[PierrreEncrypterBundle]
git=http://github.com/pierrre/PierrreEncrypterBundle.git
target=/bundles/Pierrre/EncrypterBundle
现在,运行 vendors 脚本来下载包
php bin/vendors install
步骤 2: 配置自动加载器
将 Pierrre 命名空间添加到您的自动加载器中
<?php // app/autoload.php $loader->registerNamespaces(array( // ... 'Pierrre' => __DIR__.'/../vendor/bundles', ));
步骤 3: 启用包
最后,在内核中启用此包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Pierrre\EncrypterBundle\PierrreEncrypterBundle(), ); }
配置
这是默认配置,所有值都是可选的
# app/config.yml pierrre_encrypter: encrypters: #Encrypters list, requires at least one encrypter. my_encrypter: #Encrypter name key: "@kernel.secret" #The secret that is used to encrypt data. By default, it will use the kernel secret. algorithm: "rijndael-128" #Encryption algorithm mode: "cbc" #Encryption mode random_initialization_vector: true #If you set it to false, it will use a blank string as initialization vector. base64: true #Encode the encrypted data with the base64 algorithm. base64_url_safe: true #Replace "+" and "/" characters by "-" and "_". twig: #Twig extension enabled: false #Enable extension default_encrypter: null #Default encrypter. By default, it's the first encrypter
请阅读 Mcrypt 文档。
使用方法
请注意
- 如果使用随机初始化向量,它将连接到加密数据的开头。
- 解密数据末尾的 "\0" 字符将被删除。
- 加密+base64 数据末尾的 "=" 字符将被删除。
程序化
使用依赖注入容器
<?php $encrypter = $container->get('pierrre_encrypter.manager')->get('my_encrypter'); $data = 'foobar'; $encryptedData = $encrypter->encrypt($data); $decryptedData = $encrypter->decrypt($encryptedData);
手动
<?php use Pierrre\EncrypterBundle\Util\Encrypter; $encrypter = new Encrypter(array('key' => 'mySecret'));
Twig 扩展
{{ data | encrypt }}
{{ data | encrypt('my_encrypter') }}