sagacorp / http-signatures-php
使用 HMAC 和 RSA 密钥对 PSR-7 HTTP 消息进行签名和验证
1.0.0
2023-08-24 15:00 UTC
Requires
- php: >=5.6
- phpseclib/phpseclib: ~3.0
- psr/http-message: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2
- guzzlehttp/psr7: ^1.2
- kriswallsmith/buzz: ^1.0
- nyholm/psr7: ^1.1
- nyholm/psr7-server: ^0.3.0
- phpunit/phpunit: ~5.6
- symfony/http-foundation: ~2.8|~3.0
- symfony/psr-http-message-bridge: ^1.0.2
- zendframework/zend-diactoros: ^1.1
- zendframework/zend-httphandlerrunner: ^1.1
This package is auto-updated.
Last update: 2024-09-24 17:25:23 UTC
README
PHP 实现了 签名 HTTP 消息 规范草稿;允许对 PSR-7 消息 进行加密签名和验证。
特性
- 根据 签名 HTTP 消息草稿 IETF RFC 版本 10 签名 HTTP 消息
- 使用 HMAC 签名和验证消息
- 使用非对称密钥签名和验证消息
- RSA、DSA、EC
- 添加一个
Digest
头部,或者在签名时自动添加头部(单一操作) - 在验证签名时验证
Digest
头部
有关此库的完整文档可以在 Read The Docs 上找到
警告:此库的第 11 版包含了 phpseclib 在其 3.0 版本实现 上的持续工作。如果遇到任何问题,请记录问题,但鉴于库尚未稳定或完全审查,建议谨慎行事,或者保持在此库的 v10 版本,直到 phpseclib 3.0 完成,并且此库的主版本号升级。
简单用法
将 liamdennehy/http-signatures-php 添加到您的 composer.json
文件中。
- 消息假定是 PSR-7 兼容的请求或响应。
- 使用
Context
对象来配置签名参数,并准备验证功能。 signWithDigest
函数将添加Digest
头部,并在新的Signature
头部中数字签名消息。
在发送之前对 PSR-7 请求 $message
进行签名
use HttpSignatures\Context; $context = new HttpSignatures\Context([ 'keys' => ['mykey' => file_get_contents('/path/to/privatekeyfile')], 'algorithm' => 'rsa-sha256', 'headers' => ['(request-target)', 'Date'], ]); $context->signer()->signWithDigest($message);
有关其他用例的此库的完整文档可以在 Read The Docs 上找到
贡献
欢迎提交拉取请求,如果您遇到任何问题,也欢迎提交 问题报告。
注意:由于参考实现对 composer 依赖项,在 PHP 7.1 上或通过使用以下命令手动删除不兼容的依赖项(为可读性而包裹)之前,无法进行本地开发:
composer remove --dev \ nyholm/psr7 nyholm/psr7-server riswallsmith/buzz \ endframework/zend-httphandlerrunner
许可证
HTTP Signatures PHP 库采用 MIT 许可证 (MIT) 许可。
库的文档采用 Creative Commons Attribution-ShareAlike 4.0 国际 (CC BY-SA 4.0) 许可。
详细信息请参阅 LICENSE 文件