pierrre/encrypter-bundle

此包已被弃用且不再维护。未建议替代包。
此包的最新版本(dev-master)没有可用的许可证信息。

为 Symfony2 提供易于使用的加密服务

安装次数: 32,952

依赖者: 0

建议者: 0

安全: 0

星星: 19

关注者: 1

分支: 10

公开问题: 1

类型:symfony-bundle

dev-master 2013-12-27 08:56 UTC

This package is not auto-updated.

Last update: 2020-01-19 13:37:39 UTC


README

PierrreEncrypterBundle 为 Symfony2 提供易于使用的加密服务。

功能

  • 从 PHP 代码中可调用的服务
  • Twig 扩展(可选)
  • 100% 单元测试! Build Status

先决条件

确保已安装 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') }}