Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: urlsafe_base64_decode  (Прочитано 14708 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
perl6
Помогающий

ru
Offline Offline

« : 05-03-2017 21:50 » 

Доброго вам времени суток, поЧаны. Никто не знает, почему данные не распаковываются нормально.

Пример.

Код:
#!/usr/bin/perl

use MIME::Base64::URLSafe;

my $str = 'aWQ9O_E5NSZ1aWQ9O_gwNDg1ODEzJmlwP_E4NS4xNS4yMDkuMjAxJm1jP_IyO_FhZ_g1NWI3OWFjNGI5ZDJlY2I4MWQwZWIwYWU3JmJudW09bDRIYkJ2dEg1SzFMSm5ZNE1GbGEmc2lwP_E0OC4yN_EuM_UyLjE0NSZicmlkP_Mmc2Vzcz1iYzk1OGUzZWMwOGQyY2Y3NGIwY_gzNGMxZGRjMjM3NCZyZWYxPWh0dHA6Ly9la3UucnUvY2F0ZWdvcnkvc3RvcnkvJmJpZD0xODcwMyZtYz0yMjkxYWU4N_ViNzlhYzRiOWQyZWNiODFkMGViMGFlNyZibnVtPWw0SGJCdnRINUsx_EpuW_RNRmxhJnQ9MSZoaWRlbGluaz0x';

print urlsafe_b64decode($str);

Выдаёт какую-то ерунду вместо осмысленного кода.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 06-03-2017 00:40 » 

Цитата
use '-' and '_' instead of '+' and '/'
no line feeds
no trailing equals (=)

При ручном восстановлении на ура декодится обычным base64.
« Последнее редактирование: 06-03-2017 00:49 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
perl6
Помогающий

ru
Offline Offline

« Ответ #2 : 06-03-2017 14:02 » new


При ручном восстановлении на ура декодится обычным base64.

Что значит, при ручном восстановлении и на ура? У меня при использовании стороннего декодера более менее получается, а на перле ну никак. Хотя, кодировка вроде как base64_urlsafe

Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 06-03-2017 19:57 » 

Заменил "_" на "/" и програл через base64 -d
Не пользуйся этим модулем. Судя по старости (2006), ему вполне можно не доверять. Напиши свой - это несколько строчек.
Проверил модуль. К нему претензий нет, все как надо делает.

Значит ты что-то не то делаешь или что-то не то ожидаешь.
Вот вывод результата:

$ perl test.pl | hexdump -C
00000000  69 64 3d 3b f1 39 35 26  75 69 64 3d 3b f8 30 34  |id=;.95&uid=;.04|
00000010  38 35 38 31 33 26 69 70  3f f1 38 35 2e 31 35 2e  |85813&ip?.85.15.|
00000020  32 30 39 2e 32 30 31 26  6d 63 3f f2 32 3b f1 61  |209.201&mc?.2;.a|
00000030  67 f8 35 35 62 37 39 61  63 34 62 39 64 32 65 63  |g.55b79ac4b9d2ec|
00000040  62 38 31 64 30 65 62 30  61 65 37 26 62 6e 75 6d  |b81d0eb0ae7&bnum|
00000050  3d 6c 34 48 62 42 76 74  48 35 4b 31 4c 4a 6e 59  |=l4HbBvtH5K1LJnY|
00000060  34 4d 46 6c 61 26 73 69  70 3f f1 34 38 2e 32 37  |4MFla&sip?.48.27|
00000070  f1 2e 33 f5 32 2e 31 34  35 26 62 72 69 64 3f f3  |..3.2.145&brid?.|
00000080  26 73 65 73 73 3d 62 63  39 35 38 65 33 65 63 30  |&sess=bc958e3ec0|
00000090  38 64 32 63 66 37 34 62  30 63 f8 33 34 63 31 64  |8d2cf74b0c.34c1d|
000000a0  64 63 32 33 37 34 26 72  65 66 31 3d 68 74 74 70  |dc2374&ref1=http|
000000b0  3a 2f 2f 65 6b 75 2e 72  75 2f 63 61 74 65 67 6f  |://eku.ru/catego|
000000c0  72 79 2f 73 74 6f 72 79  2f 26 62 69 64 3d 31 38  |ry/story/&bid=18|
000000d0  37 30 33 26 6d 63 3d 32  32 39 31 61 65 38 37 f5  |703&mc=2291ae87.|
000000e0  62 37 39 61 63 34 62 39  64 32 65 63 62 38 31 64  |b79ac4b9d2ecb81d|
000000f0  30 65 62 30 61 65 37 26  62 6e 75 6d 3d 6c 34 48  |0eb0ae7&bnum=l4H|
00000100  62 42 76 74 48 35 4b 31  fc 4a 6e 5b f4 4d 46 6c  |bBvtH5K1.Jn[.MFl|
00000110  61 26 74 3d 31 26 68 69  64 65 6c 69 6e 6b 3d 31  |a&t=1&hidelink=1|
00000120  0a                                                |.|
00000121
« Последнее редактирование: 06-03-2017 21:30 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
perl6
Помогающий

ru
Offline Offline

« Ответ #4 : 07-03-2017 13:12 » 

Ну вот, все верно. Только в выводе, вместо нормально урла идет галиматья? Откуда в урле может быть ";" , к примеру. К этому выводу я давно пришел, я полагал, что юзабельный вывод получить можно...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 07-03-2017 15:46 » 

в url может быть что угодно кроме & (почти)

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
perl6
Помогающий

ru
Offline Offline

« Ответ #6 : 08-03-2017 18:35 » 

в url может быть что угодно кроме & (почти)
Нет, там видно, что урла порченая.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 08-03-2017 22:50 » 

Ты где эту base64-строку взял? Там и спроси, чего в нее напихали. Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
perl6
Помогающий

ru
Offline Offline

« Ответ #8 : 09-03-2017 17:51 » 

Ты где эту base64-строку взял? Там и спроси, чего в нее напихали. Улыбаюсь
Роман, если бы это было возможно, чего бы я тогда парился.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines