miserenkov / yii2-security
Yii2 extension for openssl encryption by public/private keys
Installs: 57
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 1
Type:yii2-extension
Requires
- php: >=5.6
- ext-openssl: *
- yiisoft/yii2: ^2.0.13
Requires (Dev)
- codeception/codeception: ^2.2
Suggests
- ext-openssl: This library needs OpenSSL
This package is auto-updated.
Last update: 2024-10-16 03:32:42 UTC
README
Yii2 extension for encryption and decryption by openssl public/private keys
Support
Installation
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.
Configuration
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) ], ... ],
Basic usages
Encryption
Asymmetric encryption
Will return base64 encoded encrypted data.
With default public key
Yii::$app->security->encryptByPublicKey( $data // string data for ecnryption );
With custom public key
Yii::$app->security->encryptByPublicKey( $data, // string data for ecnryption $publicKey // alias or path to custom public key or PEM formatted public key );
Hybrid encryption
Will return array from encryption key and encrypted data (['key' => '...', 'data' => '...']).
With default public key
Yii::$app->security->encryptHybrid( $data // string data for ecnryption );
With custom public key
Yii::$app->security->encryptHybrid( $data, // string data for ecnryption $publicKey // alias or path to custom public key or PEM formatted public key );
Decryption
Asymmetric decryption
Will return decrypted data.
With default private key
Yii::$app->security->decryptByPrivateKey( $data // string data for decryption );
With custom private key
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) );
Hybrid encryption
Will return decrypted data.
With default private key
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 );
With custom private key
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) );