jybtx / rsa-crypt-aes
这是RSA和AES加密解密的扩展,适用于对加密数据有高要求的API接口
dev-master
2022-07-16 04:30 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-26 08:46:01 UTC
README
正在测试中的RSA和AES加密解密开发工具包
安装
Composer
执行以下命令以获取软件包的最新版本
composer require jybtx/rsa-crypt-aes
Laravel
>= laravel5.5
ServiceProvider将自动附加
其他
在你的config/app.php
文件中,将Jybtx\RsaCryptAes\Providers\CryptServiceProvider::class
添加到providers
数组的末尾
'providers' => [ ... Jybtx\RsaCryptAes\Providers\CryptServiceProvider::class, ], 'aliases' => [ ... "RsaCryptAes" => Jybtx\RsaCryptAes\Faceds\RsaCryptAesFaced::class, ]
生成密钥
我已经包含了一个辅助命令来为你生成密钥
php artisan jybtx:secret
这将更新你的.env文件,例如HEX_IV=foobar
这是用于签名令牌的密钥。具体如何发生将取决于你选择的算法。
发布配置
php artisan vendor:publish --provider "Jybtx\RsaCryptAes\Providers\CryptServiceProvider"
或者
php artisan vendor:publish --tag=crypt
用法
获取公钥
use RsaCryptAes; $public = RsaCryptAes::getThePublicKey();
解密随机字符串
$random = RsaCryptAes::decryptRandomString($obj,$md5PublicKey);
解密加密数据
$data = RsaCryptAes::getDecryptEncryptedData($random,$pubKeyMd5,$data); if ( $data == FALSE ) return respone()->json(['status'=>100,'message'=>'Public key invalidation, retrieve']);
为API返回数据
return RsaCryptAes::getReturnEncryptDataForApi($status,$msg,$data=''); // Return data format return [ 'status' => $status, 'msg' => $msg, 'data' => $data, 'sign' => $encrypt_aes_key, ];
加密数据
$restart = RsaCryptAes::getEncryptedDataAndRandomStrings($status,$msg,$data); return [ 'status' => $status, 'msg' => $msg, 'data' => $string, 'random' => $encrypt_aes_key, 'md5public' => md5($pubKey) ];
签名操作
$result = RsaCryptAes::getSign(string $attributes,$private_key); return (string) Signature;
签名验证
$result = RsaCryptAes::getVerify(string $attributes, string $sign, $publicKey); return boolean true | false;
最后
提示:RSA和AES的加密解密还需要改进,但这不会影响正常使用
许可
MIT