mmeyer2k/ralph

半安全对称加密库

dev-main 2022-08-03 20:14 UTC

This package is auto-updated.

Last update: 2024-08-30 01:14:52 UTC


README

有时会吃蜡笔的半安全对称加密库。

Ralph在大小至关重要的情况下提供了可接受的安全性。所有主要安全参数都是64位(块、iv和校验和)。因此,长度小于8字节的输入字符串会导致24字节的密文。

$encrypted = ralph()::encrypt('secret', 'password');

var_dump(base64_encode($encrypted));
#string(32) "M783Db84XVPukJZkRh05R5ZBZxcD4CvM"

$decrypted = ralph()::decrypt($encrypted, 'password');

var_dump($decrypted);
#string(6) "secret"

Ralph不是很聪明,所以他把自己注册在全局命名空间 \Ralph 中。他还注册了全局辅助函数 ralph(),以便您方便地使用并娱乐。

安装

实验性

Ralph与PHP版本7.1到8.1兼容。

composer require mmeyerk/ralph main-dev

工作原理

Ralph使用 hash_pbkdf2() 生成密钥流,然后将其与消息进行异或操作。encryptdecrypt 函数都接受一个可选的第三个参数来指定密钥加固的迭代次数。

$iterations = 10000;
$encrypted = ralph()::encrypt('secret', 'password', $iterations);
$decrypted = ralph()::decrypt($encrypted, 'password', $iterations);

规格

  • 初始化向量(random_bytes
  • 时间安全的校验和验证(hash_equalshash_hmacsha3-256
  • 块填充(PKCS#7
  • 密钥流生成(hash_pbkdf2sha3-512