burakdalyanda/cipher-weave

1.0 2024-08-25 19:57 UTC

This package is auto-updated.

Last update: 2024-09-28 10:05:50 UTC


README

CipherWeave 是一个 Laravel 中间件包,旨在加密 outgoing 响应和解密 incoming 请求,确保您的数据在其整个旅程中保持安全。

特性

  • 无缝集成:轻松将 CipherWeave 集成到您的 Laravel 项目中。
  • 加密和解密:自动加密响应和解密请求。
  • 可配置的安全:自定义加密设置以符合您的安全需求。
  • 灵活的密钥管理:可选择覆盖特定路由或手动操作中的加密密钥。

要求

  • PHP 8.0 或更高版本
  • Laravel 8.x 或 9.x

安装

要安装 CipherWeave,请使用 Composer

composer require burakdalyanda/cipher-weave

配置

发布配置文件以自定义加密设置

php artisan vendor:publish --tag=cipherweave-config

这将创建一个 config/cipher.php 文件,您可以在其中调整加密算法、密钥以及在调试模式下禁用加密等设置。

密钥设置

  • 您可以使用 CIPHER_KEY 在 .env 文件中设置加密密钥。
  • 默认加密密钥是 .env 文件中定义的 APP_KEY。
  • 支持的加密算法:“AES-128-CBC”,“AES-256-CBC”。

示例配置

return [
    'key' => env('CIPHER_KEY', env('APP_KEY')),
    'cipher' => env('CIPHER_ALGORITHM', 'AES-128-CBC'),
    'initial_vector' => env('CIPHER_IV', '0123456789ABCDEF'),
    'disable_on_debug' => false,
];

用法

注册中间件

将中间件添加到您的 app/Http/Kernel.php 文件中

protected $routeMiddleware = [
    // Other middleware
    'encrypt.request.response' => \BurakDalyanda\CipherWeave\Middleware\EncryptRequestResponse::class,
];

保护路由

将中间件应用于您的 routes/web.phproutes/api.php 中的路由

Route::middleware(['encrypt.request.response'])->group(function () {
    Route::get('/secure-endpoint', 'SecureController@index');
    // Other routes
});

为特定路由使用自定义加密密钥

您可以通过向中间件传递密钥参数来覆盖默认加密密钥以特定路由或路由组

Route::middleware(['encrypt.request.response:custom_key'])->group(function () {
    Route::get('/secure-endpoint', 'SecureController@index');
    // Other routes
});

手动加密/解密

您还可以使用 CipherWeaveManual 类手动加密或解密数据

use BurakDalyanda\CipherWeave\CipherWeaveManual;

$cipher = new CipherWeaveManual();

// Encrypt data
$encryptedData = $cipher->encryptData($data, 'optional_custom_key');

// Decrypt data
$decryptedData = $cipher->decryptData($encryptedData, 'optional_custom_key');

高级用法

在调试模式下禁用加密

如果您想在应用程序处于调试模式时禁用加密(例如,在开发期间),可以在 config/cipher.php 文件中将 disable_on_debug 配置选项设置为 true

'disable_on_debug' => true,

这将绕过加密和解密过程,当您的 .env 文件中将 APP_DEBUG 设置为 true 时。

贡献

欢迎贡献!请参阅 CONTRIBUTING.md 文件以获取更多有关如何参与的详细信息。

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件