sextanet / aduana
Bidirectional channel to encrypt and decypt data
Fund package maintenance!
sextanet
Requires
- php: ^8.2
Requires (Dev)
- laravel/pint: ^1.0
- pestphp/pest: ^3.0
- spatie/ray: ^1.28
README
A robust and easy-to-use package with bidirectional support to encrypt and decrypt data with AES-256-CBC.
The original name Aduana is inspired by @uppercod's aduana
Installation
You can install the package via composer:
composer require sextanet/aduana
Basic usage
Note
Since version 1.0.3, the password needs to be at least 10 characters
Encrypt text
// Step 1: set a password \SextaNet\Aduana\Aduana::setPassword('yourSecurePassword'); // Step 2: encrypt your data return \SextaNet\Aduana\Aduana::encrypt('hello, from Aduana (:');
Returns encrypted text, like this:
dWSNOkN6mqxeCH0v3mzbWlJxRDJWTGE1WUxSQnN1eVNlbCtuNzdlOTFWSDUybFJIYVluNGNDMFZ4ajQ9
Decrypt text
// Step 1: set a password \SextaNet\Aduana\Aduana::setPassword('yourSecurePassword'); // Step 2: decrypt your data return \SextaNet\Aduana\Aduana::decrypt('dWSNOkN6mqxeCH0v3mzbWlJxRDJWTGE1WUxSQnN1eVNlbCtuNzdlOTFWSDUybFJIYVluNGNDMFZ4ajQ9');
Returns your original text:
hello, from Aduana (:
Advanced usage
You can also encrypt complex structures like arrays. With the same syntax to encrypt and decrypt 😎
Encrypt an array
\SextaNet\Aduana\Aduana::setPassword('yourSecurePassword'); $array = [ 'your-complex-array' => [ 'another-level' => [ 'yes' => [ 'it works!' => [ 'no problem!', ] ] ] ] ]; return \SextaNet\Aduana\Aduana::encrypt($array);
Decrypt an array
$decrypted_array = \SextaNet\Aduana\Aduana::decrypt('zwKOVw6zX2Jp8gNdQuE6TWRyNUR4MFFpN2lVaGIyeHZBMUljQXA1d2VuYjFZR3RKVkkzNC9HR25RampMUEQrSTdRbHVOT3VUU2hDL04rVXErSVNRL0FvTlAyMjRWa1pRVjdRS1RuSTFvRFBkRHVjMm9Pbm0ySnVnNnJVPQ=='); var_dump($decrypted_array);
Emojis (new)
Aduana supports three emojis:
Set password
Aduana::🔑('verySecretPassword');
Encrypt
Aduana::🔒('Hello, from Aduana!');
Decrypt
Aduana::🔓('Fvt2y2Q1Y26c1oh1Zr1YpXR2KzJKVlYyZzd5OUFpdEUyNi91MkR1UTMvMmtSbnVtWXhYVk5FU2Z2VWs9');
Functions
If you don't want to use PSR-4 and their imports, you can also use functions
Set password
aduana_password('verySecretPassword');
Encrypt
aduana_encrypt('Hello, from Aduana!');
Decrypt
aduana_decrypt('Fvt2y2Q1Y26c1oh1Zr1YpXR2KzJKVlYyZzd5OUFpdEUyNi91MkR1UTMvMmtSbnVtWXhYVk5FU2Z2VWs9');
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.