Chris Muench
Chris Muench

Reputation: 18318

possible characters base64 url safe function

What is the range of possible characters returned from this string?

function base64url_encode($data) 
{ 
  return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); 
} 

My guess is [a-z0-9-_]

Upvotes: 30

Views: 43926

Answers (2)

Floern
Floern

Reputation: 33904

Base64 encoded strings may contain the characters a-z A-Z 0-9 + / =.

You're removing the right-padding = and replacing + with - and / with _.

So in your case, the possible characters are a-z A-Z 0-9 - _

More Info

Upvotes: 49

salathe
salathe

Reputation: 51950

The range of possible characters returned are:

  • A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
  • a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • - (minus) and _ (underscore)

In your regex-style, that would be [a-zA-Z0-9_-].

Upvotes: 47

Related Questions