laravel使用RSA公钥加密AES密钥

laravel使用RSA公钥加密AES密钥,laravel,encryption,aes,rsa,Laravel,Encryption,Aes,Rsa,我已经生成了一个自定义AES密钥,我需要用RSA公钥加密这个AES密钥 我们怎么能在拉雷维尔做到这一点 如有任何建议,将不胜感激 $aesKey = base64_encode(Encrypter::generateKey('AES-128-CBC')); 我找到了一个解决方案,而且似乎很有效 通过composer安装phpseclib composer require phpseclib/phpseclib use phpseclib\Crypt\RSA as Crypt_RSA; $rs

我已经生成了一个自定义AES密钥,我需要用RSA公钥加密这个AES密钥

我们怎么能在拉雷维尔做到这一点

如有任何建议,将不胜感激

$aesKey = base64_encode(Encrypter::generateKey('AES-128-CBC'));

我找到了一个解决方案,而且似乎很有效

通过composer安装phpseclib

composer require phpseclib/phpseclib
use phpseclib\Crypt\RSA as Crypt_RSA;

$rsa = new Crypt_RSA();
$rsa->loadKey($publickey);
$rsa->setEncryptionMode(2);
$data = 'Your String';
$output = $rsa->encrypt($data);
echo base64_encode($output);

你听说过吗。在
[1,n]
中生成一个随机数
x
,其中
n
是RSA模。使用具有此值的密钥派生函数(KDF)获取AES密钥
k
,并使用此密钥加密消息。使用RSA encryption of
x
Enc(pk,x)
发送加密邮件。另一方解密并获取
x
,然后使用
KDF
获取
AES
密钥。@kelalaka有相关文档吗?请参阅最近关于加密的问题。