A laravel package that encrypts your data with private public key pairs using asymmetric encryption.
The way it works is that it encrypts the data with a symmetric key, then asymmetrically encrypt the key and attach it to the data. Useful for encrypting large data. More details here: https://www.sitepoint.com/encrypt-large-messages-asymmetric-keys-phpseclib/
Via Composer command line:
$ composer require pdaleramirez/asymmetric-encryption
Or add the package to your composer.json
:
{
"require": {
" pdaleramirez/asymmetric-encryption": "^1.0.0"
}
}
'providers' => [
pdaleramirez\asymmetric\encryption\AsymmetricEncryptionProvider::class
];
And then add the alias to your config/app.php
file:
'aliases' => [
'AsymmetricEncryption' => pdaleramirez\asymmetric\encryption\AsymmetricEncryptionFacade::class
];
Generate the key pairs:
$keys = \AsymmetricEncryption::createKeys();
Encrypting and Decrypting
$textToEncrypt = 'text to encrypt';
$privateKey = file_get_contents('keys/private.key');
$publicKey = file_get_contents('keys/public.pem');
$encryptedData = \AsymmetricEncryption::encrypt($textToEncrypt, $publicKey);
$decryptedData = \AsymmetricEncryption::>decrypt($encryptedData, $privateKey);