localzet/lwt
Composer 安装命令:
composer require localzet/lwt
包简介
Localzet LWT is a library for working with Localzet Web Tokens, which are based on JWT (JSON Web Tokens). It provides functionality for creating, verifying, and handling tokens using modern technologies and standards.
README 文档
README
LWT - Localzet Web Tokens (JWT-based)
Класс LWT предоставляет методы для кодирования и декодирования LWT-токенов. Он использует алгоритмы шифрования AES и RSA для шифрования данных в токене.
Использование
Кодирование LWT-токена
Чтобы кодировать LWT-токен, используйте метод encode() класса LWT. Этот метод принимает данные, закрытый ключ и алгоритм шифрования (по умолчанию ES512) в качестве аргументов.
Если закрытый ключ и алгоритм шифрования не указаны, используются значения, определенные в классе.
$data = ['username' => 'localzet', 'email' => 'creator@localzet.com']; $tokenPrivateKey = '...'; // Закрытый ключ для шифрования токена (рекомендую ECDSA) $tokenEncryption = 'HS256'; // Алгоритм шифрования (по умолчанию ES512) $encodedToken = LWT::encode($data, $tokenPrivateKey, $tokenEncryption);
Декодирование LWT-токена
Чтобы декодировать LWT-токен и получить расшифрованные данные, используйте метод decode() класса LWT. Этот метод принимает закодированный токен, публичный ключ и алгоритм шифрования в качестве аргументов.
Если публичный ключ и алгоритм шифрования не указаны, используются значения, определенные в классе.
$encodedToken = '...'; // Закодированный LWT-токен $tokenPublicKey = '...'; // Публичный ключ для шифрования токена (рекомендую ECDSA) $tokenEncryption = 'HS256'; // Алгоритм шифрования (по умолчанию ES512) $decodedData = LWT::decode($encodedToken, $tokenPublicKey, $tokenEncryption);
Кодирование данных в LWT-токене
Чтобы закодировать данные в LWT-токене и дополнительно обезопасить их, используйте методы encode() и decode() класса LWT с дополнительными аргументами.
Эти методы принимают дополнительные ключи для шифрования данных в полезной нагрузке комбинацией ассиметричного (RSA) и симметричного (AES-256-CBC) алгоритмов.
Если дополнительные ключи для шифрования данных не указаны, данные загружаются в полезную нагрузку в неизменном виде.
$encodedToken = '...'; // Закодированный LWT-токен $tokenPublicKey = '...'; // Публичный ключ для шифрования токена (рекомендую ECDSA) $tokenEncryption = 'HS256'; // Алгоритм шифрования (по умолчанию ES512) $decodedData = LWT::decode($encodedToken, $tokenPublicKey, $tokenEncryption);
Настройка
Класс LWT имеет несколько статических свойств и констант, которые можно настроить для изменения поведения кодирования и декодирования токенов.
Настройка JWT-совместимого алгоритма шифрования LWT-токена
Чтобы изменить алгоритм шифрования для сигнатуры, измените значение константы LWT_ENCRYPTION.
Возможные значения:
HMAC-based: HS256, HS384, HS512
RSA-based: RS256, RS384, RS512
ECDSA-based: ES256, ES384, ES512
// Изменение алгоритма шифрования для сигнатуры LWT-токена (рекомендую ES512) LWT::LWT_ENCRYPTION = 'ES512';
Настройка закрытого и публичного ключей LWT-токена
Чтобы изменить закрытый или публичный ключи для кодирования или декодирования LWT-токена, измените значения статических свойств $LWT_PRIVATE_KEY и $LWT_PUBLIC_KEY соответственно.
// Изменение закрытого ключа для кодирования LWT-токена LWT::$LWT_PRIVATE_KEY = '...'; // Закрытый ключ в формате PEM (рекомендую ECDSA) // Изменение публичного ключа для декодирования LWT-токена LWT::$LWT_PUBLIC_KEY = '...'; // Публичный ключ в формате PEM (рекомендую ECDSA)
Настройка закрытого и публичного ключей данных
Чтобы изменить закрытый или публичный ключи для шифрования или расшифровки данных, измените значения статических свойств $DATA_PRIVATE_KEY и $DATA_PUBLIC_KEY соответственно.
// Изменение закрытого ключа для шифрования данных LWT::$DATA_PRIVATE_KEY = '...'; // Закрытый ключ RSA // Изменение публичного ключа для расшифровки данных LWT::$DATA_PUBLIC_KEY = '...'; // Публичный ключ RSA
localzet/lwt 适用场景与选型建议
localzet/lwt 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 99 次下载、GitHub Stars 达 21, 最近一次更新时间为 2023 年 08 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「library」 「openssl」 「mbstring」 「jwt」 「tokens」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 localzet/lwt 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 localzet/lwt 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 localzet/lwt 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PHP library to encrypt/decrypt secrets using OpenSSL.
Platine Security provides a complete security system with encryption, hash support.
A library for reading KeePass 2.x databases
Inbox pattern process implementation for your Laravel Applications
Core library that defines common interfaces used by the rest of the intahwebz..
A PHP library for RSA encryption and decryption using the OpenSSL extension
统计信息
- 总下载量: 99
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 21
- 点击次数: 39
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: AGPL-3.0-or-later
- 更新时间: 2023-08-25