dterranova/crypto-bundle

此包已被废弃,不再维护。没有建议的替代包。

dterranovaCryptoBundle

dev-master 2016-09-21 06:28 UTC

This package is not auto-updated.

Last update: 2023-08-12 11:53:39 UTC


README

此扩展包提供使用AES-256密码的文件加密功能。使用的内存量与加密的文件无关。

工作流程

加密

通过读取原文件,以chunk_file_size为单位进行加密。在temp_folder中创建一个以原加密文件命名的文件夹。每个加密部分都写入此文件夹。

解密

通过传递原文件名给decryptFile方法,cryptoBundle使用文件加密部分的相应文件夹来重建原文件。

安装

  • 添加到您的composer文件中
{
    "require": {
        ...
        "dterranova/crypto-bundle": "dev-master"
    }
    ...
}
  • 更新您的供应商 php composer.phar update

  • 添加到您的AppKernel

    // app/AppKernel.php
    public function registerBundles()
    {
        return array(
            // ...
            new dterranova\Bundle\CryptoBundle\dterranovaCryptoBundle(),
            // ...
        );
    }
  • 添加到您的app/config/config.yml
# app/config/config.yml
dterranova_crypto:
    temp_folder: "%kernel.root_dir%/../web/YOUR_TEMP_FOLDER"
    chunk_file_size: 2 # The size (in Mb) of chunked files, more it is big more it will consume memory 

使用方法

  • 加密文件
$cryto = $this->get("dterranova_crypto.crypto_adapter");
$crypto->encryptFile(ABSOLUTE_FILE_PATH, KEY);
  • 解密文件
$cryto = $this->get("dterranova_crypto.crypto_adapter");
$crypto->decryptFile(ABSOLUTE_FILE_PATH, KEY, true);  // The same absolute file path