When I tried to encode a YouTube URL to base64 again, the value after the
=
sign didn't change, except for the first two letters. Is the last portion already in base64?
Menos o sinal =
sendo traduzido em %3D
, sim, CvUN8qg9lsk
já está codificado em Base64.
Why are they the same?
Como o @LPChip destaca, a função que você está usando é um codificador de URL que traduz somente caracteres especiais no URL ( :
, /
, ?
, +
e =
) em sua equivalentes hexadecimais (letras não normais).
Base64 includes other encoding too, right?
Embora a codificação de URL seja considerada uma forma de codificação Base64, vale a pena observar que esse termo está potencialmente sobrecarregado. Por Wikipedia (grifo nosso):
"Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation."
Em suma, a função base64
que você está usando não deve codificar / decodificar CvUN8qg9lsk
.
Como uma pequena nota lateral, se você adicionar um =
(preenchimento) e tentar traduzir, por exemplo, CvUN8qg9lsk=
com um codificador / decodificador "normal" Base64, isso pode funcionar. Dito isso, é improvável que você consiga algo que valha a pena (ou seja, significativo para os seres humanos). É muito provável que os valores que o YouTube usa para obter seus IDs sejam o produto de um algoritmo muito específico que provavelmente não tem relação com nada fora do Google / YouTube.