Yii2 extension for encryption and decryption by openssl public/private keys
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist miserenkov/yii2-security "^1.0"
or add
"miserenkov/yii2-security": "^1.0"
to the require section of your composer.json
file.
To use security extension, you should configure it in the application configuration like the following
'components' => [
...
'security' => [
'class' => 'miserenkov\security\Security',
'certificateFile' => '', // alias or path to default certificate file
// or
'publicKeyFile' => '', // alias or path to default public key file
'privateKeyFile' => '', // alias or path to default private key file
'passphrase' => '', // passphrase to default private key (if exists)
],
...
],
Will return base64 encoded encrypted data.
Yii::$app->security->encryptByPublicKey(
$data // string data for ecnryption
);
Yii::$app->security->encryptByPublicKey(
$data, // string data for ecnryption
$publicKey // alias or path to custom public key or PEM formatted public key
);
Will return array from encryption key and encrypted data (['key' => '...', 'data' => '...']).
Yii::$app->security->encryptHybrid(
$data // string data for ecnryption
);
Yii::$app->security->encryptHybrid(
$data, // string data for ecnryption
$publicKey // alias or path to custom public key or PEM formatted public key
);
Will return decrypted data.
Yii::$app->security->decryptByPrivateKey(
$data // string data for decryption
);
Yii::$app->security->decryptByPrivateKey(
$data, // string data for decryption
$privateKey, // alias or path to custom private key or PEM formatted private key
$passphrase // passphrase for private key (if exists)
);
Will return decrypted data.
Yii::$app->security->decryptHybrid(
$data, // string data for decryption or array from
// encryption key and ecnrypted data (['key' => '...', 'data' => '...'])
$key // encryption key if $data as string
);
Yii::$app->security->decryptHybrid(
$data, //string data for decryption or array from
// encryption key and ecnrypted data (['key' => '...', 'data' => '...'])
$key, // encryption key if $data as string
$privateKey, // alias or path to custom private key or PEM formatted private key
$passphrase // passphrase for private key (if exists)
);