Base64Url.php 714 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace Shaarli;
  3. /**
  4. * URL-safe Base64 operations
  5. *
  6. * @see https://en.wikipedia.org/wiki/Base64#URL_applications
  7. */
  8. class Base64Url
  9. {
  10. /**
  11. * Base64Url-encodes data
  12. *
  13. * @param string $data Data to encode
  14. *
  15. * @return string Base64Url-encoded data
  16. */
  17. public static function encode($data) {
  18. return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
  19. }
  20. /**
  21. * Decodes Base64Url-encoded data
  22. *
  23. * @param string $data Data to decode
  24. *
  25. * @return string Decoded data
  26. */
  27. public static function decode($data) {
  28. return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
  29. }
  30. }