超越 AES — 使用 XChaCha20 对 Laravel 进行现代加密

超越 aes — 使用 xchacha20 对 laravel 进行现代加密

在当今的数字环境中,数据加密是每个 web 应用程序的重要组成部分。本文探讨了我为什么开发一个利用 libsodium 的 xchacha20-poly1305 加密功能的包,以及它如何增强 laravel 应用程序的安全性,同时最大限度地减少开销。

动机和要求

laravel 的框架 crypt facade 为敏感数据的加密和解密提供了方便的接口,例如无状态身份验证令牌或服务间通信框架。

默认框架的加密实现基于 openssl 的 aes-256-cbc,通常是安全的坚实基础,但总有改进的空间,特别是在性能和​​可用性至关重要的情况下。

现代算法和密码

虽然通过 openssl 的 aes-256-cbc 仍然被认为是安全的,但已经过时了。此外,它对 openssl 的依赖可能会引入潜在的漏洞,具体取决于特定版本和配置。

从 php 7.2 开始,sodium 扩展与 php core 捆绑在一起。 libsodium 优先考虑现代、经过严格审查的加密原语,例如 xchacha20-poly1305 和 ed25519。虽然 aes 通过硬件加速可以很快,但 xchacha20-poly1305 作为软件实现,在没有特殊硬件指令的情况下优于它。

// default aes-256-cbc encrypter$encrypter = new illuminateencryptionencrypter($key, 'aes-256-cbc');$start = microtime(true);$results = [];for ($i = 0; $i encrypt(['user_id' => $i]);}$elapsed = microtime(true) - $start;// 4.08 seconds
// custom xchacha20-poly1305 encrypter$encrypter = new blu3blazeencrypterencrypter($key);$start = microtime(true);$results = [];for ($i = 0; $i encrypt(['user_id' => $i]);}$elapsed = microtime(true) - $start;// 1.79 seconds

令牌长度的显着优化

内置加密将密文、初始化向量和标签值编码为 json 对象的 base64 表示形式,这显着增加了令牌的长度。
切换到 xchacha20 算法无需编码 json,nonce 可以作为二进制字符串添加到密文中。

// default aes-256-cbc encrypter$encrypter = new illuminateencryptionencrypter($key, 'aes-256-cbc');$token = $encrypter->encrypt([   'user_id' => '10296ab5-88b8-4dff-b7cf-2840b879e6dc']);// 312 characters
// custom xchacha20-poly1305 encrypter$encrypter = new blu3blazeencrypterencrypter($key);$token = $encrypter->encrypt([   'user_id' => '10296ab5-88b8-4dff-b7cf-2840b879e6dc']);// 139 characters

url 中的 base64 问题

嵌入式库使用原始的 base64 变体。因此,使用令牌作为 url 的一部分或作为 get 参数之一需要从 base64 到 base64urlsafe 的额外转换。
在 base64urlsafe 中立即编码密文没有任何缺点,并且允许在任何环境中安全的令牌传输。

入门

1) 通过composer安装包

composer require blu3blaze/laravel-xchacha20-encrypter

2) 修改 bootstrap/providers.php 中的服务提供商列表

<?phpreturn [  // all other application providers, such as appserviceprovider  blu3blazeencrypterencrypterserviceprovider::class,];

3) 使用 xchacha20-poly1305 算法享受 crypt 外观

use IlluminateSupportFacadesCrypt;$token = Crypt::encrypt([  'user_id' => '73d430f0-d39e-4642-a37e-9ef791b90d11']);/* TAl1Sz4DTspE8ZzTOC6Q.....Ug5t4XcWqoiB6CWRak9Y */$tokenData = Crypt::decrypt($token);/* ['user_id' => '73d430f0-d39e-4642-a37e-9ef791b90d11'] */

结论

通过采用 blu3code/laravel-xchacha20-encrypter 包,您可以利用现代加密算法的优势,并在 laravel 应用程序中实现显着的性能改进。这意味着更快的响应时间、更少的服务器负载以及更安全的用户数据环境。尝试一下,亲自看看有何不同!

以上就是超越 AES — 使用 XChaCha20 对 Laravel 进行现代加密的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1248339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 20:25:10
下一篇 2025年12月9日 14:03:33

相关推荐

  • php网络编程指南:RESTful API开发指南

    如何使用 laravel 创建 restful api?安装 laravel。配置路由,通过 routes/api.php 定义 crud 操作路由。创建控制器 todocontroller,用于处理 crud 操作。添加代码注释,以清楚地描述每个操作的功能。使用 postman 安装并调用 api…

    2025年12月9日
    000
  • PHP 函数事件处理技术如何与其他框架集成?

    php 函数事件处理技术允许你在函数和方法上定义事件,并通过与其他框架集成来扩展其功能。通过与 laravel 和 symfony 框架集成,你可以注册和触发事件以执行特定动作。实际应用中,你可以使用它与 swiftmailer 框架集成,在用户创建时通过事件处理程序发送欢迎邮件。 PHP 函数事件…

    2025年12月9日
    000
  • 如何使用 Laravel 框架扩展 PHP 函数的日志记录?

    laravel 提供了一种方法来扩展 php 函数的日志记录:安装 monolog/monolog 扩展。在 config/logging.php 中配置 custom 日志通道。使用 illuminatesupportfacadeslog 门面记录自定义日志。 使用 Laravel 扩展 PHP …

    2025年12月9日
    000
  • php网络编程指南:POST和GET请求详解

    post和get是 php 网络编程中常见的请求方法。post请求用于发送敏感或大量数据,而get请求用于发送较少的不敏感数据。post请求的数据安全性较高,不会显示在浏览器的地址栏中,而get请求会显示在地址栏中。 PHP 网络编程指南:POST 和 GET 请求详解 概述 在 PHP 网络编程中…

    2025年12月9日
    000
  • php函数日志记录第三方模块问题解答

    第三方模块,如 monolog,可简化 php 程序日志记录。安装 monolog(composer require monolog/monolog)配置 monolog(创建 logger 并指定处理器)使用 info()、error() 等方法记录日志信息集成 psr-3 标准,便于在模块间切换…

    2025年12月9日
    000
  • 如何在 PHP 函数中使用日志记录上下文?

    如何在 PHP 函数中使用日志记录上下文 PHP 日志记录上下文允许您在日志记录消息中添加额外的附加信息,从而有助于调试和故障排除。 使用步骤 加载 Monolog 日志记录库:php composer require monolog/monolog 创建日志记录器:php $logger = ne…

    2025年12月9日
    000
  • PHP,永不倒下的大象!

    照片由 Ben Griffiths 在 Unsplash 上拍摄 PHP是一门广受好评的语言,同时也受到其他人的批评,有人说它正在消亡,但真的是这样吗,值得花时间学习PHP吗? PHP PHP 是 Rasmus Lerdorf 在 90 年代开发的一种编程语言,最初它被开发为一种服务器端语言,帮助 …

    2025年12月9日
    000
  • 小型 Swoole 实体管理器

    我很高兴向大家介绍 Small Swoole Entity Manager。 它是一个围绕 Swoole(和 OpenSwoole)构建的 ORM。 它支持异步连接到: MySQLPostgres小型 Swoole Db(Swoole Tables 之上的关系层) 目前仅提供核心包; Symfony…

    2025年12月9日
    000
  • PHP 函数在用户体验优化中的妙招和窍门

    利用 php 函数优化用户体验(ux)的方法包括:减少页面加载时间:使用输出缓冲和 gzip 压缩。改善表单验证:应用正则表达式和 html5 表单验证。提供交互式用户界面:实现 ajax 交互和使用模态框。 PHP 函数在用户体验优化中的妙招和窍门 在当今快节奏的数字世界中,用户体验 (UX) 至…

    2025年12月9日
    000
  • 来认识一下 phpvm:您的新 PHP 永远最好的朋友!

    你们好,php 爱好者和版本杂耍忍者!您是否厌倦了 php 版本探戈?您知道吗,您不断地在 php 版本之间切换的速度比猫视频传播得还快?好吧,戴上你的派对帽子吧,因为我有一些令人兴奋的消息,这将使你的开发生活更轻松(我敢说,更有趣)! phpvm 简介:您梦想中的 php 版本管理器 想象一下:您…

    2025年12月9日
    000
  • PHP 函数与 DevOps 实践的整合?

    通过以下方法整合 php 函数与 devops 实践,可以提高开发和运维流程的效率:自动化测试(例如,使用 phpunit)代码静态分析(例如,使用 phpstan)部署自动化(例如,使用 composer) PHP 函数与 DevOps 实践的整合 在 DevOps 的快节奏环境中,自动化和效率至…

    2025年12月9日
    000
  • 如何自动化PHP函数测试?

    使用 phpunit 自动化 php 函数测试:使用 composer 安装 phpunit。创建一个继承自 phpunitframeworktestcase 类的测试类。为要测试的函数编写 test 开头的测试方法。使用 assert*() 断言方法验证测试结果。编写测试代码,并使用 phpuni…

    2025年12月9日
    000
  • 了解 Laravel 的 MorphTo 关系:实用指南

    目录 简介什么是多态性?morphto 的实际应用数据库设置检索数据为什么使用 morphto?结论 介绍 当深入 laravel 的世界时,你会发现它提供了一种雄辩的方式来处理数据库关系,既强大又优雅。 morphto 关系就是此类高级功能之一。该工具是 laravel 多态关系的一部分,它让一个…

    2025年12月9日
    000
  • PHP函数代码风格的工具推荐

    php 代码风格工具推荐有:phpcs:用于检查代码风格,提供自定义代码嗅探器。php code beautifier:在线工具,可以自动格式化代码,支持多种编码标准。php codesniffer fixer:扩展了 phpcs 的功能,可以自动修复代码违规。 PHP 函数代码风格的工具推荐 要维…

    2025年12月9日
    000
  • php函数命名规范与代码风格指南的整合

    通过将 php 函数命名规范与 php 代码风格指南整合,可以制定一致的编程风格,增强代码可读性、可维护性并促进团队协作。集成步骤如下:使用 psr-2 自动加载器使用静态分析工具设置 php 的编码标准使用文档块注释 PHP 函数命名规范与代码风格指南的整合 引言 制定清晰一致的编程风格对于维护代…

    2025年12月9日
    000
  • 自定义函数在大型PHP项目中的组织和管理

    大型php项目中组织和管理自定义函数需要明确的目录结构和命名约定。建议采用分层目录结构并使用一致的命名约定,例如动词或名词、前缀和抽象名。通过自动加载、代码注释和定期代码检查,可以确保函数库井然有序,方便维护和使用。遵循这些原则有助于提高代码的可读性、可维护性和可重用性。 PHP大型项目中自定义函数…

    2025年12月9日
    000
  • php函数性能分析工具介绍:使用案例分享

    本文介绍了三种流行的 php 函数性能分析工具:phpstan:静态分析,获取函数执行时间估计blackfire:交互式火焰图,详细性能报告,可检测内存泄漏xdebug:细粒度调试,提供函数调用堆栈信息 PHP 函数性能分析工具介绍:实战案例分享 函数性能分析对于优化 PHP 应用程序至关重要。本文…

    2025年12月9日
    000
  • PHP 中的 Tailwind CSS 解析器需要帮助

    大家好, 我目前正在为我的一个项目开发一个 php 中的 tailwind css 解析器,其目的是在运行时解析 tailwind css 类。我已经开始研究它并在此处创建了一个存储库:github – php tailwind parser。 我已经实现了许多已记录的css类,但我相信…

    2025年12月9日
    000
  • php函数代码部署的团队协作和流程改进

    高效的 php 函数代码部署需要团队协作和流程改进。建议的最佳实践包括:代码版本控制(使用 git),自动化构建(如使用 jenkins 或 circleci),持续集成/持续交付 (ci/cd),以及良好的沟通和协作(使用 slack、asana 或 jira 等工具)。通过实施这些措施,团队可以…

    2025年12月9日
    000
  • PHP 函数版本更新指南:安全考虑因素

    更新 php 函数版本时必须注意:检查参数和返回值的更改。采用更新的算法以提高安全性。避免使用已弃用的函数。 PHP 函数版本更新指南:安全因素 PHP 函数随着时间的推移不断更新,修复 bug 和引入新功能。但是,这些更新也可能引入安全隐患。在更新 PHP 函数版本时,必须考虑以下安全因素: 1.…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信