mrdebug/lara-file-encrypter

LaraFileEncrypter:一款Laravel包,可安全无缝地管理加密文件,无需持久存储密钥。

1.0 2023-12-07 03:47 UTC

This package is auto-updated.

Last update: 2024-09-26 23:45:24 UTC


README

image

LaraFileEncrypter是一个Laravel包,旨在增强您应用程序的文件安全性。通过简单的集成,它使您能够轻松实现AES-256加密。LaraFileEncrypter的独特之处在于其独特的方法:在不需要存储密钥的情况下提供最大安全性。现在,确保您的文件安全变得简单,确保数据机密性而不会增加复杂性。

它是如何工作的?

LaraFileEncrypter通过消除管理加密密钥的需要来简化文件安全性。相反,该过程依赖于用户选择的密码。

在加密文件时,LaraFileEncrypter根据提供的密码生成一个加密密钥。这个密钥,即从密码派生出的密钥,用于使用AES-256算法来保护您的文件。

这种方法消除了存储或管理单独加密密钥的需要。通过选择一个强大的密码,您确保了文件的有效保护,而没有传统密钥管理所涉及到的复杂性。

优点和缺点

信服吗?😉

如果您觉得这个项目很有用,请考虑给它加一颗星⭐。这有助于我优先考虑并专注于保持项目更新。感谢您的支持!

安装

composer require mrdebug/lara-file-encrypter

使用方法

本包提供了一个名为LaraFileEncrypter的facade。

加密文件

encryptFile方法public function encryptFile(string $filePath, string $rawPassword)定位一个文件,并使用提供的密码替换其现有内容。密码必须以纯文本形式提供。

示例

LaraFileEncrypter::encryptFile(
  storage_path('app/files/secret-file.pdf'),
  'mysecurerawpassword'
);

您可以添加一个盐

LaraFileEncrypter::encryptFile(
  storage_path('app/files/secret-file.pdf'),
  'mysecurerawpassword'.$salt
);

解密文件

LaraFileEncrypter facade提供了两种解密文件的方法。一种方法是流式下载(decryptAndStreamDownloadFile())文件,另一种方法是解密文件的内容(decryptContentFile())。

public function decryptAndStreamDownloadFile(string $filePath, string $rawPassword)

public function decryptContentFile(string $filePath, string $rawPassword)

示例

LaraFileEncrypter::decryptAndStreamDownloadFile(
  storage_path('app/files/secret-file.pdf'),
  'mysecurerawpassword'
);

LaraFileEncrypter::decryptContentFile(
  storage_path('app/files/secret-file.pdf'),
  'mysecurerawpassword'
);

当然,您必须提供与加密步骤中使用的相同密码。

许可证

本包采用MIT许可证

其他项目

在GitHub上探索我的其他项目