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

597
Ben Druno

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

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

Почему они такие же?

0
Пожалуйста, посмотрите ближе. Первые 2 буквы тоже не изменились. Он только изменился = на% 3D, а? до% 3F LPChip 6 лет назад 1
Что означает, что URL уже закодирован в b64? Но я не могу расшифровать это до нормальной формы; Зачем? Ben Druno 6 лет назад 0
Нет, это означает, что base64 кодирует только специальные символы: `: /? =`, Присутствующие в URL, а не буквенно-цифровые символы и `.` Кажется, кодер base64 на самом деле является кодировщиком URL. Учитывая, что вы на самом деле не упомянули, какую кодировку вы используете и где вы ее используете, ответить на этот вопрос другим другим человеком, который я сделал, будет почти невозможно. LPChip 6 лет назад 0
Да, это кодировка URL. Base64 включает в себя и другую кодировку, uft, Iso, все подпадает под кодировку base64, верно? Ben Druno 6 лет назад 0
Для кодирования URL это работает точно так, как задумано. убедившись, что новая строка работает, кодируя только то, что строго необходимо. LPChip 6 лет назад 0

1 ответ на вопрос

0
Anaksunaman

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

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

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

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

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

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

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

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

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

Это понятно. Но я слышал, что b64 сделан из-за того, что сетевой носитель не может передавать 2 ^ 7 бит, поэтому двоичный файл фактически был разделен на 6 бит с 4 наборами; 2 ^ 6 = 64. Так что это может быть передано через нашу сеть. Это реальный факт? Ben Druno 6 лет назад 0
Да вроде. Несколько лет назад 2 ^ 7 бит на символ (обычный ASCII, 128 суммарных значений) стали стандартом для передачи данных, в то время как большинство компьютеров работают с 2 ^ 8 битами (256 значений). Таким образом, существуют значения за пределами способности 128 бит для представления. Именно поэтому (главным образом) данные разделяются, хотя Base64 также помогает сохранить кодирование строк между различными операционными системами и может иметь другие преимущества. Anaksunaman 6 лет назад 0
Сэр, когда я увидел исходный код Gmail, я увидел, что все на сайте Gmail, особенно значок ящика, и все значки, используемые для создания сайта Gmail, закодированы в b64. У меня вопрос, почему они кодируют значки и даже логотипы в B64.? У них есть собственный хостинг-сервер, и почему они не могут просто загрузить эти значки туда и применить эти ссылки при создании сайта? Я надеюсь, что они используют кодировку b64 для просмотра изображения без каких-либо проблем. Но почему они не могут загрузить эту ссылку? Ben Druno 6 лет назад 0
Встроенные изображения (потенциально) увеличивают скорость страницы (по крайней мере, если изображения маленькие, как значки). Они предотвращают любой отдельный внешний запрос изображения (в том числе из служб Google), что может привести к задержке. Тем не менее, как побочные выгоды для Google, я полагаю, что это * может * повысить надежность до некоторой степени и уменьшить размер инфраструктуры, которую они должны поддерживать. Но это предположение. Anaksunaman 6 лет назад 0
Это также уменьшает непривилегированный доступ для некоторых экземпляров. Ben Druno 6 лет назад 0