swissmakers/php-openssh
Composer 安装命令:
composer require swissmakers/php-openssh
包简介
Allows you to generate 4096 Bit RSA private/public key-pairs, which can be used as authentication method and to encrypt / decrypt strings.
README 文档
README
This library allows you to generate 4096-bit OpenSSH private/public key pairs, which can be used for SSH authentication and to encrypt/decrypt strings.
use Swissmakers\OpenSSH\PrivateKey; use Swissmakers\OpenSSH\PublicKey; // Generate a new OpenSSH key pair $privateKey = PrivateKey::generate(); $publicKey = $privateKey->getPublicKey(); // Encrypt and decrypt data using the key pair $data = 'my secret data'; $encryptedData = $publicKey->encrypt($data); // Returns unreadable data $decryptedData = $privateKey->decrypt($encryptedData); // Returns 'my secret data' in plaintext
Installation
Install the package via Composer:
composer require swissmakers/php-openssh
Usage
Generate a private key and save it to a file:
use Swissmakers\OpenSSH\PrivateKey; $privateKey = PrivateKey::generate(); $privateKey->toFile('/home/foo/bar');
Loading Keys
Load a key from a file:
use Swissmakers\OpenSSH\PrivateKey; use Swissmakers\OpenSSH\PublicKey; $privateKey = PrivateKey::fromFile($pathToPrivateKey); $publicKey = PublicKey::fromFile($pathToPublicKey);
Load a key from a string:
use Swissmakers\OpenSSH\PrivateKey; use Swissmakers\OpenSSH\PublicKey; $privateKey = PrivateKey::fromString($privateKeyContent); $publicKey = PublicKey::fromString($publicKeyContent);
Obtain the public key from a private key:
use Swissmakers\OpenSSH\PrivateKey; $privateKey = PrivateKey::fromString($privateKeyContent); $publicKey = $privateKey->getPublicKey();
Encrypting and Decrypting Data
Encrypt data with a public key and decrypt it with the private key:
use Swissmakers\OpenSSH\PrivateKey; use Swissmakers\OpenSSH\PublicKey; $data = 'my secret data'; $publicKey = PublicKey::fromFile($pathToPublicKey); $encryptedData = $publicKey->encrypt($data); $privateKey = PrivateKey::fromFile($pathToPrivateKey); $decryptedData = $privateKey->decrypt($encryptedData); // Returns 'my secret data'
If decryption fails, a \Swissmakers\OpenSSH\Exceptions\BadDecryptionException will be thrown.
Checking Decryption Capability
Determine if data can be decrypted with the private key:
use Swissmakers\OpenSSH\PrivateKey; $privateKey = PrivateKey::fromFile($pathToPrivateKey); $canDecrypt = $privateKey->canDecrypt($data); // Returns a boolean
Signing and Verifying Data
Sign data with a private key and verify it with a public key:
use Swissmakers\OpenSSH\PrivateKey; use Swissmakers\OpenSSH\PublicKey; $privateKey = PrivateKey::fromFile($pathToPrivateKey); $signature = $privateKey->sign('my message'); // Returns a string $publicKey = PublicKey::fromFile($pathToPublicKey); $isVerified = $publicKey->verify('my message', $signature); // Returns true $isModifiedVerified = $publicKey->verify('my modified message', $signature); // Returns false
Validating Inputs (Laravel)
Validate form inputs to check for valid public or private keys:
use Swissmakers\OpenSSH\Rules\PublicKeyRule; use Swissmakers\OpenSSH\Rules\PrivateKeyRule; public function rules(): array { return [ 'public_key' => [ new PublicKeyRule(), ], 'private_key' => [ new PrivateKeyRule(), ], ]; }
Testing
Run tests using:
composer test
License
The GNU General Public License v3.0. See the License File for more information.
swissmakers/php-openssh 适用场景与选型建议
swissmakers/php-openssh 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 06 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「security」 「ssh」 「rsa」 「laravel」 「openssh」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 swissmakers/php-openssh 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 swissmakers/php-openssh 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 swissmakers/php-openssh 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Provide a way to secure accesses to all routes of an symfony application.
A flexible FTP, SSL-FTP, and SSH-based SFTP client for PHP. This lib provides helpers that are easy to use to manage the remote files.
Altax is an extensible deployment tool for PHP.
It's a barebone security class written on PHP
Cisco IOS communications and configuration parsing library
Contao CMS integrity check for some files
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 27
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2024-06-20