URL-адрес YouTube снова не может быть преобразован в base64

URL-адрес YouTube снова не может быть преобразован в base64

Когда я попытался снова закодировать URL YouTube в base64, значение после = не изменилось, за исключением первых двух букв. Это уже в base64? URL-адрес преобразован:http://www.youtube.com/watch?v=CvUN8qg9lsk

Вывод(b64): http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DCvUN8qg9lsk

Почему они одинаковые?

решение1

Когда я снова попытался закодировать URL YouTube в base64, значение после =знака не изменилось, за исключением первых двух букв. Последняя часть уже в base64?

Знак минус, =переводимый в %3D, да, CvUN8qg9lskуже закодирован в Base64.

Почему они одинаковые?

Как указывает @LPChip, используемая вами функция представляет собой URL-кодер, который преобразует только специальные символы в URL ( :, /, ?, +и =) в их шестнадцатеричные эквиваленты (а не обычные буквы).

Base64 включает в себя и другие кодировки, верно?

Хотя кодирование URL считается формой кодирования Base64, стоит отметить, что этот термин потенциально перегружен.Википедия(выделено мной):

"Base64 - этогруппа схожих схем кодирования двоичного кода в тексткоторые представляют двоичные данные в формате строки ASCII путем перевода их в представление с основанием 64.

Короче говоря, base64функция, которую вы используете, не предназначена для кодирования/декодирования CvUN8qg9lsk.

В качестве небольшого примечания, если вы добавите =(заполнение) и попытаетесь перевести, например, CvUN8qg9lsk=с помощью "нормального" кодировщика/декодера Base64, это может сработать. Тем не менее, вряд ли вы получите что-то стоящее (т. е. имеющее смысл для людей). Весьма вероятно, что значения, которые YouTube использует для получения своих идентификаторов, являются продуктом очень специфического алгоритма, который, скорее всего, не имеет никакого отношения ни к чему за пределами Google/YouTube.

Связанный контент