alextartan/flysystem-libsodium-adapter

即时加密和解密 flysystem 文件


README

对文件进行即时客户端加密以确保安全存储。

上传时,内容使用 Poly 1305 和密钥进行加密,并安全存储在文件系统中。

下载时,内容会被解密。

当前构建状态

CI codecov Infection MSI Dependabot Status Downloads

安装

composer require alextartan/flysystem-libsodium-adapter

使用

use AlexTartan\Flysystem\Adapter\ChunkEncryption\Libsodium;use AlexTartan\Flysystem\Adapter\EncryptionAdapterDecorator;
use League\Flysystem\Filesystem;
use League\Flysystem\Memory\MemoryAdapter;

$adapter = new MemoryAdapter();
$encryption = Libsodium::factory($encryptionKey, 4096);

$adapterDecorator = new EncryptionAdapterDecorator(
    $adapter, 
    $encryption
);

$filesystem = new Filesystem($adapterDecorator);

注意;

由于 AwsS3(以及可能的其他远程适配器)处理流上传的方式,我不得不改变这个库的工作方式(版本直到 v.1.0.0

新版本使用 php://temp 流进行加密,一旦加密完成,流就会被发送到 writeStream/readStream

从我所看到的性能来看,处理得很好。

版本控制

此库遵循 semver