Two-way encryption (encrypt and decrypt) data using PHP with OpenSSL
composer require martinusso/opencrypt
- $secretKey should have been previously generated in a cryptographically safe way, like openssl_random_pseudo_bytes. OpenCrypt has a static method
OpenCrypt::generateKey()
for this.
$password = "OpenCrypt";
// Should have been previously generated in a cryptographically safe way
$secretKey = 'SECRET_KEY';
// You can pass the IV as argument or it is generated automatically
$openCrypt = new OpenCrypt($secretKey [, string $iv ]);
// get the IV
$iv = $openCrypt->iv();
// encrypt
$encryptedPassword = $openCrypt->encrypt($password);
// $encryptedPassword = 'GWw3bqL7FqjmRs0yyIR/8A=='
// decrypt
$decryptedPassword = $openCrypt->decrypt($encryptedPassword);
// $decryptedPassword = 'OpenCrypt'
OpenCrypt offers a static method to generate a safe IV:
$iv = OpenCrypt::generateIV();
it is also possible to generate a safe secret key:
$secretKey = OpenCrypt::generateKey();
This software is open source, licensed under the The MIT License (MIT). See LICENSE for details.