TGViewer
Пых Пых @phpyh · 7.87K subscribers
Post #949 7.36K
base64url

Хотел предложить base64url_encode(), base64url_decode() в Core — давно стандартизованная кодировка, используется в JWT, OAuth 2.0 и WebAuthn.

Но потом нашёл в почте прошлогодний тред с куда более фундаментальным RFC:


namespace Encoding;

enum Base64
{
case Standard;
case UrlSafe;
case Imap;
}

enum PaddingMode
{
case VariantControlled;
case StripPadding;
case PreservePadding;
}

enum DecodingMode
{
case Forgiving;
case Strict;
}

enum TimingMode
{
case Variable;
case Constant;
}

/**
* @throws UnableToEncodeException
*/
function base64_encode(
string $data,
Base64 $variant = Base64::Standard,
PaddingMode $paddingMode = PaddingMode::VariantControlled,
TimingMode $timingMode = TimingMode::Variable,
): string;

/**
* @throws UnableToDecodeException
*/
function base64_decode(
string $data,
Base64 $variant = Base64::Standard,
DecodingMode $decodingMode = DecodingMode::Strict,
TimingMode $timingMode = TimingMode::Variable,
): string;


Ну и аналогичные функции для base16, base32, base58 (Bitcoin) и base85 (PDF).

https://wiki.php.net/rfc/data_encoding_api

Спросил автора, не планирует ли он возобновить работу над RFC. Вот его ответ:

Hi Valentin,

We are still working on it with Tim Düsterhus doing the full implementation.

Best regards


Так что ждём!

Этот пост я разместил неделю назад в 🐘 PHPeople.
IETF Datatracker RFC 4648: The Base16, Base32, and Base64 Data Encodings This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets…
  • 🔥 34
  • 👍 22
  • ❤ 8
More from @phpyh
  1. Sep 15, 2026Сейчас один человек с AI может выполнять работу целого IT-отдела. Только хуёво
  2. Sep 12, 2026Спасибо за заявки! Всем напишу в понедельник. Осталось 1 место.
  3. Sep 11, 2026Хардкорный курс асинхронного PHP https://hardcourse.ru/php/async
  4. Sep 11, 2026Ещё полчасика надо — сайт готов, расписываю программу! 🙏
  5. Sep 10, 2026Краткое содержание: завтра в 12:00 открываю набор на Хардкорный курс асинхронного PHP с уч…
  6. Sep 10, 2026Post #1011
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →