christian-riesen/base32
Base32 encoder/decoder according to RFC 4648
Maintainers
Requires
- php: ^7.2 || ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.5.13 || ^9.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT 2e82dab3baa008e24a505649b0d583c31d31e894
- Christian Riesen <chris.riesen.woop@gmail.com>
README
Base32 Encoder/Decoder for PHP according to RFC 4648.
👁 Latest Stable Version
👁 Total Downloads
👁 Latest Unstable Version
👁 License
Installation
Use composer:
composer require christian-riesen/base32
Usage
<?php // Include class or user autoloader use Base32\Base32; $string = 'fooba'; // $encoded contains now 'MZXW6YTB' $encoded = Base32::encode($string); // $decoded is again 'fooba' $decoded = Base32::decode($encoded);
You can also use the extended hex alphabet by using the Base32Hex class instead.
About
Initially created to work with the one time password project, yet it can stand alone just as well as Jordi Boggiano kindly pointed out. It's the only Base32 implementation that passes the test vectors and contains unit tests as well.
Goal
Have a RFC compliant Base32 encoder and decoder. The implementation could be improved, but for now, it does the job and has unit tests. Ideally, the class can be enhanced while the unit tests keep passing.
Requirements
Works on PHP 7.2 and later, including PHP 8.0.
Tests run on PHPUnit 9.5, with PHP 7.3 and later. For PHP 7.2, tests use an older PHPUnit version.
Author
Christian Riesen chris.riesen@gmail.com https://christianriesen.com
Acknowledgements
Base32 is mostly based on the work of https://github.com/NTICompass/PHP-Base32
