nickcv/yii2-encrypter
Composer 安装命令:
composer require nickcv/yii2-encrypter
包简介
Openssl Encrypter for Yii2
README 文档
README
Openssl Encrypter for Yii2 Version 1.1.0
This extension is used for two-way encryption. The cypher method used is AES, and you can either use the 128 bites or 256 bites encryption.
You can also decide whether you want to use base64 encoding on the encrypted string to make it easier to store it, keeping in mind that the additional encoding will always increase the size of the string.
Openssl has been used in place of mcrypt because of its sheer speed in the encryption and decryption process (up to 30 times faster).
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist nickcv/yii2-encrypter "*"
or add
"nickcv/yii2-encrypter": "*"
to the require section of your composer.json file.
Set Up
Once the extension is installed you can either add manually the configuration in the web.php file or you can use the command line installer that will randomly generate your encryption password and IV.
Manual Installation
Add the following lines in the components section of your web.php file.
return [
'class'=>'\nickcv\encrypter\components\Encrypter',
'globalPassword'=>'YourPassword',
'iv'=>'YourIV',
'useBase64Encoding'=>true,
'use256BitesEncoding'=>false,
];
I recommend using base64 encoding to make it easier to store the encrypted string.
The IV must always be 16 bites long, keep that in mind in case you use multibyte characters.
Automatic Installation
Modify your console.php config file, adding the encrypter to the list of bootstrapped modules
'bootstrap' => ['log','encrypter'],
Add then the module to the module list
'modules' => [
'encrypter' => 'nickcv\encrypter\Module',
],
At this point you will be able to simply execute from the root of your app directory the command ./yii encrypter/setup
The command will automatically generate the config file encrypter.php in your application config directory. The generated config file will contain a randomly generated password and IV.
You will now only have to add the extension to your web.php config file
'encrypter' => require(__DIR__ . DIRECTORY_SEPARATOR . 'encrypter.php'),
Basic Usage
You can now use the encrypter manually in any part of the application to either encrypt a string
\Yii::$app->encrypter->encrypt('string to encrypt');
or decrypt and encrypted string
\Yii::$app->encrypter->decrypt('string to decrypt');
Behavior
The extension also comes with a behavior that you can easily attach to any ActiveRecord Model.
Use the following syntax to attach the behavior.
public function behaviors()
{
return [
'encryption' => [
'class' => '\nickcv\encrypter\behaviors\EncryptionBehavior',
'attributes' => [
'attributeName',
'otherAttributeName',
],
],
];
}
The behavior will automatically encrypt all the data before saving it on the database and decrypt it after the retrieve.
Keep in mind that the behavior will use the current configuration of the extension for the encryption.
Console Commands
If the console module is installed you can also use the ./yii encrypter/encrypt and ./yii encrypter/decrypt console commands.
To find out how to install the console module follow the "Automatic Installation" instructions in this document.
Unit Testing
The entire extension was built with TDD.
To launch the tests just go inside the extension directory and execute the codecept run command.
Warnings
It is extremely hard to decrypt the data without the password and IV, keep a copy of them to avoid losing all your data.
Two-way encryption should not be used to store passwords: you should use a one-way encryption function like sha1 and a SALT
nickcv/yii2-encrypter 适用场景与选型建议
nickcv/yii2-encrypter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 675.92k 次下载、GitHub Stars 达 19, 最近一次更新时间为 2015 年 01 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Active Record」 「extension」 「Behavior」 「encryption」 「openssl」 「yii2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 nickcv/yii2-encrypter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nickcv/yii2-encrypter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nickcv/yii2-encrypter 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Propel2 is an open-source Object-Relational Mapping (ORM) for PHP 5.5 and up.
PHP Interface for Babel Street Text Analytics
A custom URL rule class for Yii 2 which allows to create translated URL rules
A Symfony extension to get active class base on current bundle/controller/action
LDAP user provider bundle for Symfony 6.4
The helper class for Laravel applications to get active class base on current route for Laravel 11
统计信息
- 总下载量: 675.92k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 19
- 点击次数: 30
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0
- 更新时间: 2015-01-23