Base64Url.php 721 B

1234567891011121314151617181920212223242526272829303132333435
  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. {
  19. return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
  20. }
  21. /**
  22. * Decodes Base64Url-encoded data
  23. *
  24. * @param string $data Data to decode
  25. *
  26. * @return string Decoded data
  27. */
  28. public static function decode($data)
  29. {
  30. return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
  31. }
  32. }