Quando tentei codificar o URL do YouTube novamente para base64, o valor após = não mudou, exceto as duas primeiras letras. Isso já está em base64? Url convertido:http://www.youtube.com/watch?v=CvUN8qg9lsk
Saída (b64): http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DCvUN8qg9lsk
Por que eles são iguais?
Responder1
Quando tentei codificar novamente um URL do YouTube para base64, o valor após o
=
sinal não mudou, exceto as duas primeiras letras. A última parte já está em base64?
Sem o =
sinal que está sendo traduzido %3D
, sim, CvUN8qg9lsk
já está codificado em Base64.
Por que eles são iguais?
Como aponta @LPChip, a função que você está usando é um codificador de URL que traduz apenas caracteres especiais na URL ( ,,, e :
) em seus equivalentes hexadecimais (não em letras normais)./
?
+
=
Base64 também inclui outra codificação, certo?
Embora a codificação de URL seja considerada uma forma de codificação Base64, vale a pena observar que esse termo está potencialmente sobrecarregado. PorWikipédia(enfase adicionada):
"Base64 é umgrupo de esquemas semelhantes de codificação binária para textoque representam dados binários em um formato de string ASCII, traduzindo-os em uma representação de base 64."
Resumindo, a base64
função que você está usando não se destina a codificar/decodificar CvUN8qg9lsk
.
Como uma pequena observação lateral, se você adicionar um =
(preenchimento) e tentar traduzir, por exemplo, CvUN8qg9lsk=
com um codificador/decodificador Base64 "normal", isso pode funcionar. Dito isto, é improvável que você consiga algo que valha a pena (ou seja, que seja significativo para os humanos). É muito provável que os valores que o YouTube usa para obter seus IDs sejam produto de um algoritmo muito específico que provavelmente não tem relação com nada fora do Google/YouTube.