nrk / pbkdf2-service-provider
为 Silex 微框架提供基于密码的密钥推导函数 (PBKDF2) 服务
dev-master
2012-07-08 08:57 UTC
Requires
- php: >=5.3.2
- silex/silex: 1.0.*
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)。