sextanet/aduana

Bidirectional channel to encrypt and decypt data

Fund package maintenance!
sextanet

1.0.4 2025-01-02 20:25 UTC

This package is auto-updated.

Last update: 2025-01-03 03:23:34 UTC


README

Latest Version on Packagist Tests Total Downloads

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.