可能的字符base64 url​​安全功能

Chr*_*nch 21 php base64

从这个字符串返回的可能字符的范围是多少?

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

我的猜测是 [a-z0-9-_]

Flo*_*ern 42

Base64编码的字符串可能包含字符a-z A-Z 0-9 + / =.

您要移除右填充=和更换+-/_.

所以在你的情况下,是的,可能的角色是 a-z A-Z 0-9 - _

更多信息

  • 来源位于[RFC 4648第7页](http://tools.ietf.org/html/rfc4648#page-7) (3认同)

sal*_*the 34

返回的可能字符范围是:

  • 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
  • -(减号)和_(下划线)

在你的正则表达式,那将是[a-zA-Z0-9_-].

  • 抱歉恢复旧帖子..但值得一提的是`base64encode`喜欢将`=`添加到某些字符串的末尾作为"padding"以保持字符串长度为模数4.见答案:http://stackoverflow.com/a/4492448/648350 (12认同)
  • 还有一个'='等号,就像这个字符串"RElMR19OZXdzX0NlbnRyYWxfMjAxMTExMThfZGE2NTU0NjI0Zi5qcGc = .jpg" (8认同)
  • -1表示"<ul>"滥用,+ 2因为它回答了问题;) (7认同)
  • @salathe同意了,我只是觉得值得一提的是`base64encode`的默认行为是什么,就像我在搜索它的可能值时所说的那样,这是最先发布的帖子之一:) (5认同)
  • @haxxxton和那些`=`在问题的`base64url_encode`函数中明确地被'rtrim`编辑. (3认同)
  • @FrederickG.Sandalo 检查原始问题,等号 (=) 正在被 (r) 修剪。 (2认同)