文档
Welcome! 安装(Installation) 示例列表(List of examples) 依赖注入与服务定位器(Dependency Injection/Service Location) MVC 架构(The MVC Architecture) 使用控制器(Using Controllers) 使用模型(Working with Models) 模型元数据(Models Meta-Data) 事务管理(Model Transactions) Phalcon 查询语言(Phalcon Query Language (PHQL)) 缓存对象关系映射(Caching in the ORM) 对象文档映射 ODM (Object-Document Mapper) 使用视图(Using Views) 视图助手(View Helpers) 资源文件管理(Assets Management) Volt 模版引擎(Volt: Template Engine) MVC 应用(MVC Applications) 路由(Routing) 调度控制器(Dispatching Controllers) 微应用(Micro Applications) 使用命名空间(Working with Namespaces) 事件管理器(Events Manager) 请求环境 (Request Environment) 返回响应(Returning Responses) Cookie 管理(Cookies Management) 生成 URL 和 路径(Generating URLs and Paths) 闪存消息(Flashing Messages) 使用 Session 存储数据(Storing data in Session) 过滤与清理(Filtering and Sanitizing) 上下文编码(Contextual Escaping) 验证(Validation) 表单(Forms) 读取配置(Reading Configurations) 分页(Pagination) 使用缓存提高性能(Improving Performance with Cache) 安全(Security) 加密/解密( Encryption/Decryption ) 访问控制列表 ACL(Access Control Lists ACL) 多语言支持(Multi-lingual Support) 通用类加载器 ( Universal Class Loader ) 日志记录(Logging) 注释解析器(Annotations Parser) 命令行应用(Command Line Applications) 队列(Queueing) 数据库抽象层(Database Abstraction Layer) 国际化(Internationalization) 数据库迁移(Database Migrations) 调试应用程序(Debugging Applications) Phalcon 开发工具(Phalcon Developer Tools) 提高性能:下一步该做什么?(Increasing Performance: What's next?) 单元测试(Unit testing) 授权(License)
教程

发布于 2015-08-21 15:27:41 | 613 次阅读 | 评论: 0 | 来源: 网络整理

加密/解密( Encryption/Decryption )

Phalcon通过 PhalconCrypt 组件提供了加密和解密工具。这个类提供了对PHP mcrypt 的封装。

默认情况下这个组件使用AES-256 (rijndael-256-cbc)。

基本使用

这个组件极易使用:

<?php

use PhalconCrypt;

// Create an instance
$crypt     = new Crypt();

$key       = 'le password';
$text      = 'This is a secret text';

$encrypted = $crypt->encrypt($text, $key);

echo $crypt->decrypt($encrypted, $key);

也可以使用同一实例加密多次:

<?php

use PhalconCrypt;

// 创建实例
$crypt = new Crypt();

$texts = array(
    'my-key'    => 'This is a secret text',
    'other-key' => 'This is a very secret'
);

foreach ($texts as $key => $text) {

    // 加密
    $encrypted = $crypt->encrypt($text, $key);

    // 解密
    echo $crypt->decrypt($encrypted, $key);
}

加密选项(Encryption Options)

下面的选项可以改变加密的行为:

名称 描述
Cipher cipher是libmcrypt提供支持的一种加密算法。 查看这里 here
Mode libmcrypt支持的加密模式 (ecb, cbc, cfb, ofb)

例子:

<?php

use PhalconCrypt;

// 创建实例
$crypt = new Crypt();

// 使用 blowfish
$crypt->setCipher('blowfish');

$key   = 'le password';
$text  = 'This is a secret text';

echo $crypt->encrypt($text, $key);

提供 Base64(Base64 Support)

为了方便传输或显示我们可以对加密后的数据进行 base64 转码:

<?php

use PhalconCrypt;

// 创建实例
$crypt   = new Crypt();

$key     = 'le password';
$text    = 'This is a secret text';

$encrypt = $crypt->encryptBase64($text, $key);

echo $crypt->decryptBase64($encrypt, $key);

配置加密服务(Setting up an Encryption service)

你也可以把加密组件放入服务容器中这样我们可以在应用中的任何一个地方访问这个组件:

<?php

use PhalconCrypt;

$di->set('crypt', function () {

    $crypt = new Crypt();

    // 设置全局加密密钥
    $crypt->setKey('%31.1e$i86e$f!8jz');

    return $crypt;
}, true);

然后,例如,我们可以在控制器中使用它了:

<?php

use PhalconMvcController;

class SecretsController extends Controller
{
    public function saveAction()
    {
        $secret = new Secrets();

        $text = $this->request->getPost('text');

        $secret->content = $this->crypt->encrypt($text);

        if ($secret->save()) {
            $this->flash->success('Secret was successfully created!');
        }
    }
}
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务