psamatt/mcrypt-service-provider

用于Silex环境中对mcrypt库的简单封装

1.0.2 2013-09-02 20:14 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:10:24 UTC


README

Build Status

一个用于Silex的PHP Mcrypt 库的简单封装

使用方法

注册服务提供程序并指定您的唯一密钥。

$app->register(new Psamatt\Silex\Provider\McryptServiceProvider('unique_key', array(
        'cipher' => MCRYPT_RIJNDAEL_256, // optional
        'mode' => MCRYPT_MODE_CBC, // optional
        'iv_source' => MCRYPT_DEV_RANDOM, // optional
        'base64' => true|false, // optional. Default is true
        'auto_generate_iv' => true|false, // option. Default is false
    )));

请注意,如果您将 auto_generate_iv 设置为 false,则必须显式生成IV,您可以通过以下方式完成此操作:

$app['mcrypt']->generateIv();

在您的Silex应用程序中,您可以使用以下行使用Mcrypt提供程序:

$data = 'my string';
$encryptedKey = $app['mcrypt']->encrypt($data);

print $app['mcrypt']->decrypt($encryptedKey); // prints 'my string'

如果您想在Twig模板中使用mcrypt,可以使用以下任一过滤器: mcrypt_encryptmcrypt_decrypt

{{ object.method | mcrypt_encrypt }} // encrypt
{{ object.method | mcrypt_decrypt }} // decrypt 

* 确保在您的Twig Service Provider之后定义 McryptServiceProvider 以利用Twig功能

其他有用信息

如果您需要解密使用mcrypt加密的字符串,并且不使用MCRYPT_MODE_ECB (推荐),则必须在加密字符串之前使用 $app['mcrypt']->getIv() 获取IV并安全存储,然后当您准备解密时,必须使用 $app['mcrypt']->setIv($my_iv) 设置相同的IV,请参阅单元测试 获取进一步说明。

Mcrypt 文档

有关Mcrypt应使用哪些值的更多信息,请查看特定类型的文档

默认情况下,加密字符串将使用base64编码和解码,要为您的应用程序设置此选项,请将base64选项设置为 truefalse