qroques / resilient-data
一个使数据具有弹性的包
v0.8.0
2024-07-03 22:01 UTC
Requires
- php: >=8.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.58
- pedrotroller/php-cs-custom-fixer: ^2.33
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^11.2
- dev-main
- v0.8.0
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6
- v0.5
- v0.4
- 0.1
- dev-dependabot/composer/phpstan/phpstan-1.12.5
- dev-dependabot/composer/phpunit/phpunit-11.3.6
- dev-dependabot/composer/phpstan/phpstan-1.12.4
- dev-dependabot/composer/friendsofphp/php-cs-fixer-3.64.0
- dev-dependabot/composer/pedrotroller/php-cs-custom-fixer-2.33.1
- dev-fix/file-handling
This package is auto-updated.
Last update: 2024-09-27 06:37:52 UTC
README
警告
此项目仍在进行中。代码尚未完全功能化。
概述
Resilient Data 是一个库,提供类以弹性方式处理数据。通常,数据会被分成多个部分,并且每个部分可以存储在不同的位置。此库提供类来处理这类数据,即使在某些部分丢失的情况下也能恢复初始数据。
示例
你有 4 个合作伙伴,你想将一个秘密分成 4 部分,使每个合作伙伴都有一部分。你想确保至少有 3 个合作伙伴在场时秘密可以被恢复。这意味着如果你失去一个合作伙伴,你仍然可以恢复秘密。为此,此库会将秘密分成多个部分(块)并分配给合作伙伴。为了确保冗余,每个块都会被复制并分配给两个合作伙伴。
用法
安装
Composer
composer require qroques/resilient-data
注意
此库需要 PHP 8.3 或更高版本,但不需要任何其他依赖。
分割数据
$resilientData = new Qroques\ResilientData\ResilientData(file_get_contents(__DIR__.'/data/lorem.txt')); // We want to split the data into 5 parts, and we want to be able to recover the data even with 2 parts missing $splittingConfiguration = new Qroques\ResilientData\SplittingConfiguration(5, 2); $splitter = new Qroques\ResilientData\Splitter(); $fragments = $splitter->split($resilientData, $splittingConfiguration);
警告
数据块没有被加密。这意味着数据的部分仍然可以从片段中读取。
恢复数据
$assembler = new Qroques\ResilientData\Assembler(); $resilientData = $splitter->assemble($fragments);