antikirra/base64url
Composer 安装命令:
composer require antikirra/base64url
包简介
README 文档
README
Ultra-lightweight PHP library for URL-safe base64 encoding and decoding. Perfect for JWT tokens, URL parameters, API keys, and any scenario requiring base64 encoding without URL-unsafe characters (+, /, =).
Install
composer require antikirra/base64url:^2.0
Why Base64URL?
- ✨ URL-Safe - No special characters that need URL encoding
- 🔧 RFC 4648 Compliant - Follows official base64url specification
- ⚡ Blazing Fast - Minimal overhead, optimized string operations
- 🎯 Drop-in Replacement - Simple API, easy migration from base64_encode/decode
- 📦 Lightweight - Just 2 functions, zero dependencies
- 🚀 Production Ready - Battle-tested in JWT and API implementations
Features
- URL-Safe Encoding: Replaces
+with-and/with_, removes padding= - Input Validation: Strict validation prevents invalid characters in decoding
- UTF-8 Support: Handles multibyte characters correctly (Chinese, Korean, Japanese, etc.)
- Binary Safe: Works with any binary data, not just text
- Legacy Compatible: Works with PHP 5.6+ through PHP 8.4
- Zero Dependencies: No external libraries or extensions required
- 100% Test Coverage: Fully tested with comprehensive test suite
Perfect for
- JWT Tokens: Encoding JWT payloads and signatures
- URL Parameters: Safely encode data in query strings
- API Keys: Generate URL-safe API tokens and keys
- OAuth: State parameters and authorization codes
- File Names: Encode data for use in file names
- Cookies: Store encoded data in cookies without escaping
Requirements
- PHP: 5.6 or higher
- Extensions: None (uses only core PHP functions)
- Dependencies: Zero
Basic usage
<?php use function Antikirra\base64url_decode; use function Antikirra\base64url_encode; require __DIR__ . '/vendor/autoload.php'; // Encode text (including UTF-8) echo base64url_encode('Hello World!'); // SGVsbG8gV29ybGQh echo base64url_encode('火 剄る 불'); // 54GrIOWJhOOCiyDrtog // Decode back echo base64url_decode('SGVsbG8gV29ybGQh'); // Hello World! echo base64url_decode('54GrIOWJhOOCiyDrtog'); // 火 剄る 불 // Invalid input returns false var_dump(base64url_decode('invalid@chars!')); // bool(false)
API Reference
base64url_encode(string $string): string
Encodes a string using URL-safe base64 encoding.
Parameters:
$string- The string to encode (binary-safe)
Returns:
- URL-safe base64 encoded string (no
+,/, or=characters)
Example:
base64url_encode('test'); // dGVzdA
base64url_decode(string $string): string|false
Decodes a URL-safe base64 encoded string.
Parameters:
$string- The base64url encoded string
Returns:
- Decoded string on success,
falseon invalid input
Example:
base64url_decode('dGVzdA'); // test base64url_decode('inv@lid'); // false
Testing
The library is thoroughly tested with comprehensive test coverage:
- Test Framework: Pest
- Total Tests: 16 passing
- Code Coverage: 100% (lines and functions)
Test Categories
- Basic Functionality: Encoding and decoding operations
- UTF-8 Support: Multibyte character handling
- Edge Cases: Empty strings, padding scenarios
- Input Validation: Invalid character detection
- Round-trip Tests: Encode → Decode consistency
- Binary Safety: Handling non-text data
Comparison: Standard Base64 vs Base64URL
| Feature | base64_encode/decode | base64url_encode/decode |
|---|---|---|
| URL-Safe | ❌ No (contains +/=) |
✅ Yes (uses -_) |
| Padding | ✅ Yes (=) |
❌ No (removed) |
| RFC 4648 Section 4 | ✅ Yes | ❌ No |
| RFC 4648 Section 5 | ❌ No | ✅ Yes |
| Use in URLs | ⚠️ Requires encoding | ✅ Direct use |
| JWT Compatible | ❌ No | ✅ Yes |
Keywords
base64url, url-safe-encoding, base64-encoding, jwt, php-encoder, rfc-4648, url-encoding, api-tokens, zero-dependencies, php-library
antikirra/base64url 适用场景与选型建议
antikirra/base64url 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 318 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 05 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 antikirra/base64url 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 antikirra/base64url 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 318
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-05-24