{"id":17191733,"url":"https://github.com/christianriesen/base32","last_synced_at":"2025-05-16T09:04:21.968Z","repository":{"id":3634878,"uuid":"4701568","full_name":"ChristianRiesen/base32","owner":"ChristianRiesen","description":"Base32 Encoder/Decoder according to RFC 4648","archived":false,"fork":false,"pushed_at":"2022-05-12T10:51:32.000Z","size":73,"stargazers_count":132,"open_issues_count":3,"forks_count":29,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-11T13:39:55.833Z","etag":null,"topics":["base32","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChristianRiesen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-18T14:05:40.000Z","updated_at":"2024-10-28T23:17:10.000Z","dependencies_parsed_at":"2022-08-18T21:50:43.794Z","dependency_job_id":null,"html_url":"https://github.com/ChristianRiesen/base32","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChristianRiesen%2Fbase32","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChristianRiesen%2Fbase32/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChristianRiesen%2Fbase32/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChristianRiesen%2Fbase32/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChristianRiesen","download_url":"https://codeload.github.com/ChristianRiesen/base32/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501557,"owners_count":22081528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base32","php"],"created_at":"2024-10-15T01:27:13.810Z","updated_at":"2025-05-16T09:04:21.943Z","avatar_url":"https://github.com/ChristianRiesen.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"base32\n======\n\nBase32 Encoder/Decoder for PHP according to [RFC 4648](https://tools.ietf.org/html/rfc4648).\n\n![CI](https://github.com/ChristianRiesen/base32/workflows/CI/badge.svg)\n\n[![Latest Stable Version](https://poser.pugx.org/christian-riesen/base32/v/stable.png)](https://packagist.org/packages/christian-riesen/base32) [![Total Downloads](https://poser.pugx.org/christian-riesen/base32/downloads.png)](https://packagist.org/packages/christian-riesen/base32) [![Latest Unstable Version](https://poser.pugx.org/christian-riesen/base32/v/unstable.png)](https://packagist.org/packages/christian-riesen/base32) [![License](https://poser.pugx.org/christian-riesen/base32/license.png)](https://packagist.org/packages/christian-riesen/base32)\n\n\nInstallation\n-----\n\nUse composer:\n\n```bash\ncomposer require christian-riesen/base32\n```\n\nUsage\n-----\n\n```php\n\u003c?php\n\n// Include class or user autoloader\nuse Base32\\Base32;\n\n$string = 'fooba';\n\n// $encoded contains now 'MZXW6YTB'\n$encoded = Base32::encode($string);\n\n// $decoded is again 'fooba'\n$decoded = Base32::decode($encoded);\n```\n\nYou can also use the extended hex alphabet by using the `Base32Hex` class instead.\n\nAbout\n=====\n\nInitially created to work with the [one time password project](https://github.com/ChristianRiesen/otp), yet it can stand alone just as well as [Jordi Boggiano](https://seld.be/) kindly pointed out. It's the only Base32 implementation that passes the test vectors and contains unit tests as well.\n\nGoal\n----\nHave 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.\n\nRequirements\n------------\n\nWorks on PHP 7.2 and later, including PHP 8.0.\n\nTests run on PHPUnit 9.5, with PHP 7.3 and later. For PHP 7.2, tests use an older PHPUnit version.\n\nAuthor\n------\n\nChristian Riesen \u003cchris.riesen@gmail.com\u003e https://christianriesen.com\n\nAcknowledgements\n----------------\n\nBase32 is mostly based on the work of https://github.com/NTICompass/PHP-Base32\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristianriesen%2Fbase32","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchristianriesen%2Fbase32","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchristianriesen%2Fbase32/lists"}