hernandev / laravel-aead
Laravel 的高级加密与关联数据(AEAD)。
0.1.2
2018-04-21 16:08 UTC
Requires
- php: >=7.2.0
- ext-json: *
- ext-sodium: *
- illuminate/support: ^5.6
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.0
- symfony/var-dumper: ^4.0
This package is auto-updated.
Last update: 2024-08-25 05:12:43 UTC
README
LaravelAEAD 是一个库,为 Laravel 提供了高级加密与关联数据(AEAD)。
摘要
当安装并启用此包时,它会替换 Laravel 的默认加密实现,目前只支持两种相同分组密码的变体,即 AES-128-CBC
和 AES-256-CBC
。
仅提供两种选项的原因可能基于 PHP 本身的历史,例如最近对 MCrypt 的(不是很)弃用。
从 PHP 7.2 开始,我们现在可以依赖出色的 libsodium
扩展,它支持最安全的 AEAD 构造及其变体。
AEAD 代表高级加密与关联数据,它们是结合了 流密码 和 消息认证码(MAC)的算法。
这种组合的结果是一种加密方案,为现代应用提供了三个有用的方面:
- 机密性
- 完整性
- 真实性
有关 AEAD 的更多信息,我强烈建议阅读 libsodium 文档,它说明了主要部分,但如果你关心安全性,阅读 IETF RFC 的构造也很有趣。
可用的构造
这些都是 libsodium AEAD 构造,以及它们与该包一起使用的相应密钥。
安装与配置
安装库
composer require hernandev/laravel-aead
更改认证提供者(在 config/app.php 中)
// YOU MUST COMMENT OUT THE DEFAULT ENCRYPTION CLASS> // Illuminate\Encryption\EncryptionServiceProvider::class, // THIS ONE SHOULD BE USED INSTEAD. LaravelAEAD\Providers\EncryptionServiceProvider::class,
配置加密算法(也在 config/app.php 中)
'cipher' => 'XCHACHA20-POLY1305-IETF',
使用方法
完成此安装后,所有默认 Laravel 加密都将使用相关构造/算法执行。
这意味着如果你使用 encrypt()
和 decrypt()
,它们将使用此包而不是默认加密。
这也意味着应该加密的 cookie 和会话将使用它。