nrk/pbkdf2-service-provider

为 Silex 微框架提供基于密码的密钥推导函数 (PBKDF2) 服务

dev-master 2012-07-08 08:57 UTC

This package is not auto-updated.

Last update: 2024-09-14 11:40:39 UTC


README

此服务提供商为 Silex 允许开发者无缝地在他们的 Web 应用程序中使用 基于密码的密钥推导函数 (PBKDF2)。它可以自动在算法的纯 PHP 实现和如果可用的话,在 hash 扩展中的基于 C 的函数 hash_pbkdf2()(由 PHP #60813 提出)之间进行选择。

入门

使用此服务提供商很简单,您只需在自动加载器堆栈中注册其命名空间并在 silex 应用程序中注册服务提供商的实例即可

<?php
/* ... */
$app['autoloader']->registerNamespaces(array(
    'Nrk\PBKDF2' => __DIR__.'/../vendor/PBKDF2ServiceProvider/lib',
));

$app->register(new Nrk\PBKDF2\PBKDF2ServiceProvider(), array(
    'pbkdf2.salt' => 'my_salt_string',
));

$app->get('/', function(Silex\Application $app) {
    $key = $app['pbkdf2']('my_password');
});

如果您使用 Composer 来管理 Silex 应用程序的依赖项(无论如何都强烈推荐这样做),则不需要在自动加载器堆栈中注册命名空间,因为这一步骤由 Composer 本身为您管理。

注册服务提供商实例时所需的唯一参数是 pbkdf2.salt,它存储用于计算结果的密钥的盐字符串。可选地,可以省略 pbkdf2.salt,但此时您必须将盐字符串作为生成方法的第二个参数提供。当您希望为每个密码使用动态生成的盐字符串时,这可能很有用。

$key = $app['pbkdf2']('my_password', 'my_salt_string');

这是 PBKDF2ServiceProvider 支持的自定义参数的完整列表

  • pbkdf2.salt:每个密码使用的通用盐字符串。
  • pbkdf2.algorithm:用于生成密钥的散列算法 [默认: sha1]。
  • pbkdf2.key_length:结果的密钥长度(以字节为单位)[默认: 160]。
  • pbkdf2.iterations:对密码和盐进行散列的迭代次数 [默认: 1000]。
  • pbkdf2.function:用于生成密钥的自定义函数 [默认:纯 PHP 函数或如果可用的话 hash_pbkdf2()]。

测试

为了能够运行提供者的测试套件,您必须在存储库的根目录下下载 Composer 并然后安装所需的依赖项。

$ wget https://getcomposer.org.cn/composer.phar
$ php composer.phar install
$ phpunit

依赖项

  • PHP >= 5.3.2

项目链接

作者

许可

PBKDF2ServiceProvider 的代码在 MIT 许可证 的条款下分发(请参阅 LICENSE)。