mb-tec/chacha20

此包已被废弃,不再维护。未建议替代包。

ChaCha20加密算法的纯PHP实现。

v0.3.1 2021-02-26 17:11 UTC

This package is auto-updated.

Last update: 2023-03-19 11:13:30 UTC


README

此库包含ChaCha20加密算法的纯PHP实现。

该库被编写为高性能(相对于PHP),但不够美观。它显然无法接近本地实现的性能。

使用

请记住,对于特定的密钥,nonce不得重复使用

$chacha20 = new ChaCha20\Cipher;
$encCtx = $chacha20->init($key, $nonce);
$decCtx = $chacha20->init($key, $nonce);

$cipherText = $chacha20->encrypt($encCtx, $message);
$plainText = $chacha20->decrypt($decCtx, $cipherText);

Context 对象维护算法的当前状态,因此可以在流式场景中使用。因此,同时执行加密和解密的应用程序需要维护两个上下文。

decrypt 方法是 encrypt 方法的别名,仅用于表示意图。

可以通过调用 setCounter 方法在密钥流上执行查找操作,其中计数以64字节块为单位。