每月免费发送 4,000 封电子邮件 | Mailtrap 现在发送真正的电子邮件!

使用 AES-256-GCM 和内存高效流式加密 Laravel 中的文件

最后更新于 经过

在 Laravel 中使用 AES-256-GCM 和内存高效的流式图像加密文件

在 Laravel 中加密大型文件通常需要将整个文件加载到内存中,这可能会超出 PHP 对大于几百兆文件的内存限制。Laravel 文件加密由 [此处应填写 Laravel 的开发者名称] 创建。 ercsctt ,使用 AES-256-GCM 认证加密以可配置的块处理文件,允许您加密任何大小的文件而不受内存限制。

该软件包适用于处理敏感数据的应用程序,例如医疗记录、财务文件、用户上传的文件、数据库备份和 SaaS 客户数据。

主要特点

Laravel 文件加密包含多个用于安全文件处理的功能:

  • AES-256-GCM 认证加密 提供保密性和完整性验证
  • 内存高效流式传输 可配置数据块大小(默认 64KB)
  • 进度回调 用于跟踪加密/解密操作
  • 关键轮换支持 解密过程中自动回退到之前的密钥
  • Artisan 命令 用于基于命令行界面的文件加密和解密
  • 辅助函数和外观 方便您在应用程序中访问
  • 二进制文件格式 通过 GCM 认证标签进行篡改检测

基本加密和解密

使用 FileEncrypter 用于加密和解密文件的接口:

使用 Ercsct\FileEncryption\Facades\FileEncrypter ;
// 加密文件
文件加密器 :: 加密文件
'/storage/documents/contract.pdf' ,
'/storage/encrypted/contract.enc'
(英文):
// 解密文件
文件加密器 :: 解密文件
'/storage/encrypted/contract.enc' ,
'/storage/documents/contract.pdf'
(英文):
// 获取解密后的内容,无需写入磁盘
$内容 = 文件加密器 :: 解密内容 '/storage/encrypted/contract.enc' (英文):

该套餐还包括 decrypt_file() 用于检索解密文件内容的辅助函数。

支持大文件的流式传输

该软件包默认以 64KB 为单位处理文件,防止加密大文件时内存耗尽。您可以在已发布的配置文件中或通过环境变量配置分块大小:

文件加密块大小 = 65536

对于大于 PHP 可用内存的文件,流式传输允许执行原本会失败的加密和解密操作:

// 使用 8MB 的数据块加密 2GB 的视频文件
文件加密器 :: 加密文件
'/storage/videos/presentation.mp4' ,
'/storage/encrypted/presentation.enc'
(英文):
// 处理解密后的数据块,无需加载整个文件
文件加密器 :: 解密流 '/storage/encrypted/large-file.enc' , 功能 ($chunk) {
// 读取每个解密数据块后进行处理
回声 $chunk;
});

要了解有关 Laravel 文件加密的更多信息并查看源代码,请访问 GitHub 存储库 该软件包以 MIT 许可证发布。

保罗·雷德蒙德照片

Laravel News 特约撰稿人。全栈 Web 开发人员兼作家。

归档于:
立方体

Laravel 时事通讯

加入超过 4 万名开发者的行列,不错过任何新的技巧、教程等内容。

图像
Jump24 - 英国 Laravel 代理机构

Laravel 开发人员,精通技术,绝不外包,绝不离岸外包,始终卓越。

访问 Jump24 - 英国 Laravel 代理机构
银行标志

银行

只需每月 3200 美元,即可聘请一位拥有 4-6 年经验的资深 Laravel 开发人员,为您的项目注入强劲动力。您将获得 160 小时的专属专业服务,并享受 15 天无风险试用。立即预约通话!

银行
Tinkerwell 徽标

廷克威尔

Laravel 开发者必备的代码运行器。可在本地和生产环境中体验 AI、自动补全和即时反馈功能。

廷克威尔
几天内即可获得 Laravel 代码审查徽标的专家指导

几天内即可获得 Laravel 代码审查方面的专家指导

专家级代码审查!两位拥有 10 年以上 Laravel 开发经验的开发者将为您提供清晰、实用的反馈,帮助团队构建更优质的应用程序。

几天内即可获得 Laravel 代码审查方面的专家指导
PhpStorm 标志

PhpStorm

首选的 PHP IDE,对 Laravel 及其生态系统提供广泛的开箱即用支持。

PhpStorm
Laravel Cloud 标志

Laravel 云

轻松创建和管理服务器,并在几秒钟内部署 Laravel 应用程序。

Laravel 云
Kirschbaum 标志

樱桃树

提供创新和稳定性,确保您的Web应用程序取得成功。

樱桃树
Shift 标志

转移

还在运行旧版本的 Laravel?立即实现 Laravel 自动升级和代码现代化,让您的应用程序保持最新状态。

转移
鱼叉:新一代时间跟踪和发票标志

Harpoon:新一代时间跟踪和发票系统

新一代时间跟踪和计费软件,帮助您的机构规划和预测盈利的未来。

Harpoon:新一代时间跟踪和发票系统
Lucky Media 标志

幸运传媒

Get Lucky Now——拥有十余年经验的 Laravel 开发理想之选!

幸运传媒
SaaSykit:Laravel SaaS 入门套件徽标

SaaSykit:Laravel SaaS 入门套件

SaaSykit 是一个多租户 Laravel SaaS 入门套件,包含运行现代 SaaS 所需的所有功能,例如支付、美观的结账界面、管理面板、用户仪表盘、身份验证、现成组件、统计数据、博客、文档等等。

SaaSykit:Laravel SaaS 入门套件
在 Laravel 中使用 AES-256-GCM 和内存高效的流式图像加密文件

使用 AES-256-GCM 和内存高效流式加密 Laravel 中的文件

阅读文章
Statamic 6 正式发布图片

Statamic 6 正式发布

阅读文章
Laravel VS Code 扩展 v1.5.0 中 Livewire 4 和 Blade 的改进

Laravel VS Code 扩展 v1.5.0 中的 Livewire 4 和 Blade 改进

阅读文章
使用微软的扩展图像在 VS Code 中直接管理 PostgreSQL 数据库

使用 Microsoft 的扩展程序直接在 VS Code 中管理 PostgreSQL 数据库

阅读文章
NativePHP 移动版现已免费图片

NativePHP 移动版现已免费

阅读文章
Laravel 的 Fuse:队列作业的断路器包

Laravel 的 Fuse:队列作业的断路器包

阅读文章