Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> допустимые символы в base64 
V
    Опции темы
bars80080
Дата 28.2.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



не знаю где задать этот вопрос /гугл чегой-то не помог/ 

base64_encode()

в строке от неё, какие символы встречаются?

[A-z0-9=] ?
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



странно. не проверял, но неужели по адресу en.wikipedia.com/base64 не написано?

а зачем вообще возник такой вопрос? Мне ни разу в жизни не прихходилось задумываться.
PM MAIL   Вверх
dm9
Дата 28.2.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 2
Всего: 137



Кажется, ещё + и /.
Всего должно 65 символов получится: 64 + знак "равно".
http://ru2.php.net/base64_encode (первый комментарий).

PM MAIL ICQ   Вверх
bars80080
Дата 28.2.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



по принципу запрета всего, что неразрешено

строчки base64 часто летают в урл, или просто передаются в определённых случаях

в моём случае пришлось подправить один htaccess, чтобы он пропускал base64 комбинации, вот и разрешил [A-z0-9=], а вдруг там ещё символы используются какие?

сейчас читаю http://en.wikipedia.org/wiki/Base64 но что-то пока найти не могу
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



странно.
мне всегда казалось, что в урлах летают строчки urlencode, а не Base64
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата
http://ru2.php.net/base64_encode 

интересно, во втором посте таблица с символами, но составлена с ошибкой (S)

если посчитать 26 (английских буквы) *2 = 52 + 10 (цифр) = 62, нужно ещё два символа = и наверно +

никогда не задумывался, видел на некоторых сайтах,
а вообще допустимо ли использовать base64 строчки в качестве url ?
site.ru/base64_combinacia

или хотя бы site.ru?page.php?par=base64_combinacia

Добавлено через 50 секунд
видел-видел, и вроде даже на уважаемых сайтах
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



а почему может быть нельзя?
откуда такой вопрос появился? 
кто мешает передавать в урле любые данные, закодированные хоть base64, хоть md5?

другое дело, что я не вижу в Base64 смысла, поскольку urlencode делает именно то, что надо, и не нужно потом раскодировать
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да понятное дело, если бы я сам всё это создавал такой хернёй не страдал бы, 
но по наследству передаются такие шедевры, что приходится всячески изголяться

имею возможность передать всего один параметр после ?par=string, а данных много. только get

но если в base64 используется /, то в качестве урл его не засунешь
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



осмелюсь повторить в третий раз.
для передачи данных через адресную строку сушествует специальная кодировка, реализованная в функции rawurlencode
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



потому, что:
чтобы засунуть несколько параметров в один, их перед этим нужно закодировать некой функцией (своей или стандартной, не важно) получая на выходе строчку (без символов & и /), потом да, засовываем в urlencode, передаём, принимаем и парсим

но зачем эти сложности, если можно изначально кодирнуть стандартной base64 и засунуть без лишних вопросов в url, а на выходе так же просто base64_decode

вот поэтому я и спрашиваю, из каких символов состоит строка base64

если она использует & или /, то понятное дело будем преобразовывать в ручную
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



но зачем эти сложности, если можно изначально кодирнуть стандартной urlencode и засунуть без лишних вопросов в url, а на выходе вообще ничего не будет нужно

PM MAIL   Вверх
GeneralElectric
Дата 28.2.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



я понять не могу. есть функция, специально преднезначенная для кодирования передаваемой через урл информации. в которой гарантированно нет ничего лишнего. но нет - мы почему-то берем другую и подрываемся искать - есть ли в ней неправильные символы или нет.

PM MAIL   Вверх
bars80080
Дата 28.2.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата
имею возможность передать всего один параметр после ?par=string, а данных много. только get

вот как я смогу запихнуть в значение string несколько переменных без дополнительного кодирования?
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Не понял. А как тебе base64 поможет в запихивании нескольких переменных в стринг?!
PM MAIL   Вверх
mishaSL
Дата 28.2.2008, 14:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



bars80080, предлагаю вам хорошенько читать комментарии в документации. Там дано несколько примеров безопасного кодирования base64 для передачи в url:
Код

function urlsafe_b64encode($string) {
    $data = base64_encode($string);
    $data = str_replace(array('+','/','='),array('-','_',''),$data);
    return $data;
}

function urlsafe_b64decode($string) {
    $data = str_replace(array('-','_'),array('+','/'),$string);
    $mod4 = strlen($data) % 4;
    if ($mod4) {
        $data .= substr('====', $mod4);
    }
    return base64_decode($data);
}

http://ru2.php.net/manual/ru/function.base...ncode.php#63543



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



mishaSL, спасибо за функции, но честно говоря, хочу немного сказать по существу дела

по топику были только первые посты, всё остальное разжёвывание моей конкретной ситуации
я, конечно, извиняюсь, но неужели, у вас не бывает ситуации, когда возникает мысль, и становится просто интересно

я думаю не лишне знать какие символы находятся в base64 и где её можно использовать (хотя бы ради будущих задач)

вот, mishaSL, спасибо, теперь видно, что там есть + / =, причём последний символ видно не несёт смысловой нагрузки в строке (разделитель между строками?)

теперь о конкретной ситуации:

на данном сайте используются адреса типа:
http:/ /site.ru/razdel/namepage
и если нужно передать параметры, то они задаются:
http:/ /site.ru/razdel/namepage_param1_param2

param1 и param2 - числа, ([0-9]*), были, сделаем скажем с буквами
но всю систему разрушать не хочу, и делать третий, четвёртый то же (там они уже хитро передаются), создатели постарались запутать систему до чёртиков

а передать в параметрах надо строку типа: http://site.site.ru/cgi-bin/redir/name?que...21654D1234N3214
пихать такую штуку в явный адрес не хочется (чтоб зря не глазели), вот и возникла мысль использовать base64

Это сообщение отредактировал(а) bars80080 - 28.2.2008, 15:26
PM MAIL WWW   Вверх
mishaSL
Дата 28.2.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(bars80080 @  28.2.2008,  15:24 Найти цитируемый пост)
вот и возникла мысль использовать base64

Это нормальная мысль. base64 часто используется, когда необходимо передать длинные строки. Да и в принципе эти функции располагаются в разделе "URL Functions"

Добавлено через 4 минуты и 37 секунд
А если по теме, то вот:
Спецификация Base64
Код


       0 A            17 R            34 i            51 z
       1 B            18 S            35 j            52 0
       2 C            19 T            36 k            53 1
       3 D            20 U            37 l            54 2
       4 E            21 V            38 m            55 3
       5 F            22 W            39 n            56 4
       6 G            23 X            40 o            57 5
       7 H            24 Y            41 p            58 6
       8 I            25 Z            42 q            59 7
       9 J            26 a            43 r            60 8
      10 K            27 b            44 s            61 9
      11 L            28 c            45 t            62 +
      12 M            29 d            46 u            63 /
      13 N            30 e            47 v
      14 O            31 f            48 w         (pad) =
      15 P            32 g            49 x
      16 Q            33 h            50 y


Соответственно №символа - символ


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



отлично, тема дошла до логического заключения
PM MAIL WWW   Вверх
GeneralElectric
Дата 29.2.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Цитата(bars80080 @  28.2.2008,  15:24 Найти цитируемый пост)
передать в параметрах надо строку типа: http://site.site.ru/cgi-bin/redir/name?que...21654D1234N3214

Ну вот с этого и надо было начинать. А то "по наследству досталось", "несколько параметров передавать", "мной движет дух чистого исследователя"!
К чему были все эти фантазии?
И зачем было делать вид, что ты якобы не понимаешь, почему не подходит нормальная функция?

PM MAIL   Вверх
bars80080
Дата 29.2.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



GeneralElectric, мне очень жаль, если вас интересуют только текущие проблемы. я сижу на этом форуме прежде всего потому, что здесь пролетают интересные задачи и решения, о которых я мог вообще не догадаться.

вопрос был непосредственно о base64, и я жалею, что неудержался и стал рассказывать предисторию возникновения вопроса
mishaSL, полностью ответил на вопрос в последнем посте, всё остальное (кроме его же ссылок и двух функций) банальный трёп
PM MAIL WWW   Вверх
GeneralElectric
Дата 29.2.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Ты правда думаешь, что тебе кто-то поверит в версию про "интересные решения" ;-)
PM MAIL   Вверх
bars80080
Дата 29.2.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



так, посмотрим что у нас есть за пару недель

доступ
http://php.russofile.ru/ru/translate/rights/phpgacl/

авторизация php+mysql+ajax
http://forum.vingrad.ru/articles/s/d91a3fe...pic-183932.html

уязвимость
http://underwater.itdefence.ru/blog/php_bugs.txt

вставка смайликов
http://forum.vingrad.ru/forum/topic-195781.html

window.open
http://msdn2.microsoft.com/en-us/library/m...651(VS.85).aspx

ajax-библиотека, примеры использования
http://dklab.ru/lib/JsHttpRequest/

регулярные выражения
http://kodgroup.org.ru/kms_catalog+stat+nu...d-8+page-1.html

image эффекты
http://www.dynamicdrive.com/dynamicindex4/indexb.html

javascript дерево
http://www.destroydrop.com/javascripts/tree/

постраничная навигация
http://forum.vingrad.ru/articles/topic-147416.html

ИЕ баг, слой над селектом
http://www.hedgerwow.com/360/bugs/css-select-free.html

ИЕ баг, фиксация слоя на экране
http://www.artlebedev.ru/tools/technogrett.../fixed_in_msie/

по-моему, это интересные решения
PM MAIL WWW   Вверх
GeneralElectric
Дата 29.2.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



И ты все эти вещи сравниваешь с вопросом "какие буквы входят в base64"? Ну-ну.
Действительно, достойное соседство =)
PM MAIL   Вверх
MoLeX
Дата 29.2.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(bars80080 @  29.2.2008,  09:48 Найти цитируемый пост)
 я сижу на этом форуме прежде всего потому, что здесь пролетают интересные задачи и решения, о которых я мог вообще не догадаться.

согласен есть такое...

Цитата(GeneralElectric @  29.2.2008,  09:58 Найти цитируемый пост)
Ты правда думаешь, что тебе кто-то поверит в версию про "интересные решения"

а какую версию ты выдвигаешь? 

и вообще народ:

M
MoLeX
Давайте вернёмся к теме обсуждения!



P.S. что бы прекратить флэйм тему закрываю (вроде она решилась тем более...)



Это сообщение отредактировал(а) MoLeX - 29.2.2008, 10:58


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
GeneralElectric
Дата 29.2.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



MoLeX, я никакую не выдвигаю. Все версии озвучил автор: то ему надо передать несколько переменных в одной строке  (для чего функция base64_encode не подходит в принципе). То - передать урл "невидимо" для пользователя. Тоже так себе задачка. Сознавая слабость этих причин, он ухватился за "беспроигрышную" - незамутненный исследовательский интерес. 
Однако в эту версию я не верю. У всех задач, ссылки на которые он привел выше, есть практическое применение. 
У использования base64 вместо специальных функций url-кодирования такого применения нет.


PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.