skyzyx / signer
该软件包已被废弃,不再维护。未建议替代软件包。
通过加密签名数据以防止篡改。
1.1.0
2015-02-12 23:30 UTC
Requires
- php: >=5.4.0
- ext-mcrypt: *
- psr/log: ^1.0
Requires (Dev)
- codeclimate/php-test-reporter: *@dev
- phpunit/phpcov: ~2.0
- phpunit/phpunit: ~4.3
- satooshi/php-coveralls: *@dev
Suggests
README
Signer 类是为代表公私钥对签名数据的用户设计的。
原则上,"客户端"拥有公钥(即 client_id
)和匹配的私钥(即 client_secret
),可以由签名者和客户端(但不是其他人,因为我们不希望伪造)进行验证。
"签名方"有一个简单的标识符,它作为算法中额外的熵,有助于区分多个签名方,如果客户端尝试独立于签名方使用相同的公私钥对(如GPG签名中常见的情况)。
基于AWS Signature v4的简化版本。
示例
use Skyzyx\Signer\Signer; $self_key = 'Skyzyx'; $client_id = 'k3qDQy0Tr56v1ceo'; $client_secret = 'O5j@pG@Jt%AzyiJTEfo!£LSz8yqSj)JX)S6FvW%58KjlS9bc%Fi7&&C4KSCT8hxd'; $signer = new Signer($self_key, $client_id, $client_secret, 'sha512'); $signature = $signer->sign([ 'ClientID' => $client_id, 'Domain' => 'foo.com', 'Path' => '/', 'Expires' => 'Wed, 13 Jan 2021 22:23:01 GMT', 'Secure' => null, 'HttpOnly' => null, ]); $signature = wordwrap($signature, 64, "\n", true); #=> dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47 #=> 35e9a0b834aa21ac76f98da8c52a2a0cd1b0192d0f0df5c98e3848b1b2e1a037
安装
使用 Composer
composer require skyzyx/signer=^1.0.0
并在您的脚本中包含它
require_once 'vendor/autoload.php';
测试
首先,运行 composer install -o
下载并安装依赖项。
您可以通过以下方式运行测试
bin/phpunit
调试日志
注意:您应该在开发期间使用日志记录,绝不要在生产环境中使用。
Signer 实现了 PSR-3 Psr\Log\LoggerAwareInterface
。因此,您可以注入任何PSR-3兼容的日志包,Signer 将使用它来记录 DEBUG
级别的消息。
use Monolog\Logger; use Monolog\Handler\StreamHandler; use Skyzyx\Signer\Signer; // create a log channel $log = new Logger('name'); $log->pushHandler(new StreamHandler('path/to/your.log', Logger::DEBUG)); // inject a logger $signer = new Signer(); $signer->setLogger($log); $signer->sign( ... );
API参考
API参考由名为 phpDocumentor 2.x 的工具生成。您应该使用以下命令在本地系统上安装它
cd /usr/local/bin && wget http://phpdoc.org/phpDocumentor.phar && chmod +x phpDocumentor.phar && mv phpDocumentor.phar phpdoc
安装完成后,您可以在存储库的根目录中运行以下命令以生成更新后的文档。
phpdoc
贡献
以下是贡献的过程
- Fork Signer 到您的GitHub账户。
- 将您的GitHub副本克隆到本地工作区。
- 编写代码,修复错误,并添加测试,覆盖率100%。
- 将您的更改提交到本地工作区并将它们推送到您的GitHub副本。
- 提交一个GitHub拉取请求,其中包含更改的描述。
- 贡献将被审查。评论中可能会有一些来回的讨论。
- 如果一切顺利,您的拉取请求将被接受,您的更改将被合并。
作者、版权与许可
- 版权(c)2011-2014 Amazon Web Services, Inc.
- 版权(c)2014 Ryan Parman。
请参阅参与此项目的 贡献者 列表。
在Apache 2.0许可的条款下使用。
编码规范
PSR-0/1/2 是一个坚实的基础,但它们本身并不构成完整的编码风格。我花费了时间来记录我个人编码风格的所有繁琐模式和细微差别。它远远超出了括号放置和制表符与空格的选择,涵盖了诸如文档块注释、三元运算符以及使用哪种英语变体等主题。它追求的是全面性和严谨性,而不是希望我们都能和睦相处。