driftwood / 对称加密
PHP包装OpenSSL库,提供预配置、二进制安全、认证的对称加密。
2.0.3
2021-05-03 09:57 UTC
Requires
- php: ^7.3
- ext-mbstring: *
- ext-openssl: *
Requires (Dev)
- netsilik/base-test-case: ^0.9
- phpunit/phpunit: ^8.2
README
对称加密
PHP包装OpenSSL库,提供预配置的认证对称加密。
- 易于使用
- 仅使用众所周知的加密构建块
- 认证(加密后再进行mac操作)
- 二进制安全
预期用途
此类旨在作为预配置的选项,在PHP项目中需要对称加密时使用。
对称加密类旨在直接使用:定义的各种类常量不是配置选项。相反,它们旨在方便轻松审查所做的选择。如果您更改任何定义的常量或代码的任何其他部分,隐含的安全性将不再存在;它将仅成为自制的加密的另一版本。
审查状态
对称加密类已经收到一些非正式的代码审查,但远远不足以保证其安全性。话虽如此,它可能比大多数人自己能想到的更安全。
安装
您可以选择下载代码作为 .zip文件,或者使用Composer直接从packagist下载,只需将以下内容添加到您的composer.json文件中。
{ "require": { "driftwood/symmetric-encryption": "^2.0.0" } }
使用方法
由于对称加密已经预配置,您可以使用以下方法加密和解密数据
// Assuming a PSR-4 compatible autoloader use Driftwood\SymmetricEncryption; $password = 'correct horse battery staple'; $crypto = new SymmetricEncryption(20); $encrypted = $crypto->encrypt('Never roll your own crypto.', $password); $decrypted = $crypto->decrypt($encrypted, $password); echo $decrypted; // Never roll your own crypto.
维护状态
此类正在积极维护,但更新不频繁。这是一个好事:更新意味着需要修复某些问题,这在密码学中通常是一个非常糟糕的事情。
使用密码而不是密钥
对称加密期望用户提供密码。然而,一般来说,密码是弱的认证者,使用强大的加密密钥会更加安全。选择要求密码是为了便于最大程度的简化(用户提供的密码使用PBKDF2扩展为密钥)。当然,对称加密没有最大密码长度,也不要求它不能是二进制。因此,强烈建议您选择一个非常长、随机生成的字节数组作为您的密码。