mmeyer2k / ralph
半安全对称加密库
dev-main
2022-08-03 20:14 UTC
Requires
- php: >=7.1.0
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()
生成密钥流,然后将其与消息进行异或操作。encrypt
和 decrypt
函数都接受一个可选的第三个参数来指定密钥加固的迭代次数。
$iterations = 10000; $encrypted = ralph()::encrypt('secret', 'password', $iterations); $decrypted = ralph()::decrypt($encrypted, 'password', $iterations);
规格
- 初始化向量(
random_bytes
) - 时间安全的校验和验证(
hash_equals
、hash_hmac
、sha3-256
) - 块填充(
PKCS#7
) - 密钥流生成(
hash_pbkdf2
、sha3-512
)