Skip to content
/ LWT Public

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.

License

Notifications You must be signed in to change notification settings

localzet/LWT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Скачивания Коммиты Версия Версия PHP Лицензия

LWT - Localzet Web Tokens (JWT-based)

Класс LWT предоставляет методы для кодирования и декодирования LWT-токенов. Он использует алгоритмы шифрования AES и RSA для шифрования данных в токене.

Использование

Кодирование LWT-токена

Чтобы кодировать LWT-токен, используйте метод encode() класса LWT. Этот метод принимает данные, закрытый ключ и алгоритм шифрования (по умолчанию ES512) в качестве аргументов.

Если закрытый ключ и алгоритм шифрования не указаны, используются значения, определенные в классе.

$data = ['username' => 'localzet', 'email' => '[email protected]'];
$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

About

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.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages