Quantum comes with Cryptor library which uses OpenSSL to provide AES-128 and AES-256 encryption.

Before using the library make sure that the OpenSSL PHP extension available and the openssl.cnf config file is exists and in correct place.

Make sure the APP_KEY exists in .env file (which should be automatically generated at project installtion). If the APP_KEY is missing you can use qt command line tool:

    php qt core:key-generate


Quantum's Cryptor library provides two ways of data encrytion using Symmetric and Asymmetric cryptography

To start using the Cryptor library, first make it available in your code

    use Quantum\Libraries\Encryption\Cryptor;


Create new Cryptor instance to start with symmetric cryptography

   $cryptor = new Cryptor();


The encrypt() method is used to encrypt the data

    $encrypted = $cryptor->encrypt('Secret Message');


The decrypt() method is used to decrypt the data, false will be returned if it's unable to decrypt the data



To start with asymmetric cryptography pass true to Cryptor constructor

    $cryptor = new Cryptor(true);


To ensure the Cryptor is in asymmetric mode use isAsymmetric() method, which returns true if it is, otherwise false will be returned.

if($cryptor->isAsymmetric()) {
    // asymmetric mode
} else {
    // symmetric mode


Before proceeding with encyption with asymmetric cryptography, first public and private keys need to be fetched, which can be done in the following way:

$publicKey = $cryptor->getPublicKey();
$privateKey = $cryptor->getPrivateKey();


To encrypt the message we use public key

    $encrypted = $cryptor->encrypt('Secret Message', $publicKey);


To decrypt the message we use private key

    out($cryptor->decrypt($encrypted, $privateKey));

<< Prev Next >>