jybtx/rsa-crypt-aes

这是RSA和AES加密解密的扩展,适用于对加密数据有高要求的API接口

dev-master 2022-07-16 04:30 UTC

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