shetabit/crypto
Composer 安装命令:
composer require shetabit/crypto
包简介
Asymmetric crypto package
关键字:
README 文档
README
Crypto
This package can be used to Encrypt, Decrypt and Sign data using Asymmetric algorithms in php.
the below algoritms can be used:
- RSA
- DSA
- DH
- EC
Install
Via Composer
$ composer require shetabit/payment
How to use
here is a simple encoding/decoding example.
$crypto = new Crypto; // generate private key $privateKey = $crypto->createPrivateKey(); echo $privateKey; // generate public key $publicKey = $crypto->createPublicKey($privateKey); echo $publicKey; $data = 'a simple text'; // encrypt, plain data $encryptedData = $crypto->encrypt($publicKey, $data); echo $encryptedData; // decrypt, encrypted data $decryptedData = $crypto->decrypt($privateKey, $encryptedData); echo $decryptedData;
Create private key
you can create a private key like the below
$crypt = new Crypt; $privateKey = $crypt->createPrivateKey(); echo $privatekey;
the below algorithms can be used:
- RSA: use Crypto::OPENSSL_KEYTYPE_RSA
- DSA: use Crypto::OPENSSL_KEYTYPE_DSA (not completely supported by PHP OpenSSL)
- DH: use Crypto::OPENSSL_KEYTYPE_DH (not completely supported by PHP OpenSSL)
- EC: use Crypto::OPENSSL_KEYTYPE_EC (not completely supported by PHP OpenSSL)
$crypt = new Crypt; $privateKey = $crypt->createPrivateKey(Crypto::OPENSSL_KEYTYPE_RSA); echo $privatekey;
Create public key:
a public key can be generated using a private key
$privatekey = '-----BEGIN EC PRIVATE KEY----- MIHuAgEBBEgC1SvKxAMTrXYmC9CV+euaL8KVemuuU6I9A5moUh4HgTzESYt35lgc CiwMetwIaB9RHFM7869D4rClXvnxFy91nMklcY7IsCmgBwYFK4EEACehgZUDgZIA BAHBdOduvUMAft3s3xq/70CyHtJTfbFAMmyE6rIOAXYlOcvCvwfLRTbAXkZ+PnU+ 5SkSqpC036F02Hr8GNxToie+gLrEAsmjQwLImuN9o+1UPwYR3LdG8N4JsnFkIMYr qTvrA+usw5pjfZmqE4hHlFVdIaIb7r2m8w2OEZTfsfxQjRzY6uE9P3711NWdZdP2 Rg== -----END EC PRIVATE KEY-----'; $crypt = new Crypt; $publicKey = $crypt->createPublicKey($privateKey); echo $publicKey;
Encrypt data:
- data must be in string format.
- you need a valid public key to encrypt data.
$publicKey = "-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzLBs9Y2+QSr8l5LV8beY nidHPHhM0/zMy1V7CiTWQyQVyxsZKHQJZGP+zJNovSH+KG9wfUe5XnC7qVDU80Bi ABfQFhLe+t7w8UnBbRnDxMnLCjoSrtG8ZlJBkfmvTMf4MdmvMUqzqUD+ssB76BOP Cce7qGntIlhQOzj3crliLex6E4OmwUP9RgPtIz/GQuI+O/XSf6irkkRjE8Sq9J7S zU7z/asXcSi9PMzql/3Z/K47azWBZJazpSf6rkfVQzsITcai+CaZvVItCrMq7z94 /poX24CX2MgOxWxv8thRG7jO7nNCT5Smc+wi1j3HXaxbnA3vcAt6yQ6ctXpf1rGI FwIDAQAB -----END PUBLIC KEY-----"; $data = 'this is a simple text'; $encryptedData = $crypto->encrypt($publicKey, $data); echo $encryptedData;
Decrypt data:
- you need a valid public key to decrypt data.
$privateKey='private key'; $encryptedData = 'encrypted data'; $decryptedData = $crypto->decrypt($privateKey, $encryptedData); echo $decryptedData;
Sign data:
- data must be in string format.
- you need a valid public key to sign data.
$privateKey = "-----BEGIN PRIVATE KEY----- MIHuAgEBBEgC1SvKxAMTrXYmC9CV+euaL8KVemuuU6I9A5moUh4HgTzESYt35lgc CiwMetwIaB9RHFM7869D4rClXvnxFy91nMklcY7IsCmgBwYFK4EEACehgZUDgZIA BAHBdOduvUMAft3s3xq/70CyHtJTfbFAMmyE6rIOAXYlOcvCvwfLRTbAXkZ+PnU+ 5SkSqpC036F02Hr8GNxToie+gLrEAsmjQwLImuN9o+1UPwYR3LdG8N4JsnFkIMYr qTvrA+usw5pjfZmqE4hHlFVdIaIb7r2m8w2OEZTfsfxQjRzY6uE9P3711NWdZdP2 Rg== -----END EC PRIVATE KEY-----"; $data = 'this is a simple text'; $signature = $crypto->sign($privateKey, $data); echo $signature;
verify signature:
- you need a valid public key to verify data.
$publicKey = "-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzLBs9Y2+QSr8l5LV8beY nidHPHhM0/zMy1V7CiTWQyQVyxsZKHQJZGP+zJNovSH+KG9wfUe5XnC7qVDU80Bi ABfQFhLe+t7w8UnBbRnDxMnLCjoSrtG8ZlJBkfmvTMf4MdmvMUqzqUD+ssB76BOP Cce7qGntIlhQOzj3crliLex6E4OmwUP9RgPtIz/GQuI+O/XSf6irkkRjE8Sq9J7S zU7z/asXcSi9PMzql/3Z/K47azWBZJazpSf6rkfVQzsITcai+CaZvVItCrMq7z94 /poX24CX2MgOxWxv8thRG7jO7nNCT5Smc+wi1j3HXaxbnA3vcAt6yQ6ctXpf1rGI FwIDAQAB -----END PUBLIC KEY-----"; $signature = 'this is a signature'; $verification = $crypto->encrypt($publicKey, $data); echo $encryptedData ? 'true' : 'false';
shetabit/crypto 适用场景与选型建议
shetabit/crypto 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 6, 最近一次更新时间为 2020 年 01 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「crypto」 「rsa」 「DH」 「ec」 「dsa」 「ecc」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 shetabit/crypto 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 shetabit/crypto 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 shetabit/crypto 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Phactor is a high-performance PHP implementation of the elliptic curve math functions required to generate & verify private/public (asymmetric) EC keypairs and ECDSA signatures based on secp256k1 curve parameters. This library also includes a class to generate Service Identification Numbers (SINs) b
PHP laravel extension rsa
High-level cryptographic primitives and security utilities for Maatify systems including password hashing, reversible encryption, HKDF key derivation, and key rotation.
A PHP library for RSA encryption and decryption using the OpenSSL extension
常用加密解密库
RSA ENCODE DECODE
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-01-11
