Size: a a a

2021 October 25

W

Warstone in Modern::Perl
Технически =cut надо было писать.
источник

SZ

Sergey Zhmylove in Modern::Perl
Нет нет, оно не исполняется. Ты закомментировал ее. Строка должна остаться такой же, ещё и как код исполниться, так что pod тоже не то.
Но обернуть в sub из-за return -- мысль верная

Вот я ещё стрикт добавил в условие: https://perlbanjo.com/3c522ac4fa
А принт приписал, чтобы уж точно этот код должен был целиком исполниться "как есть", а то закомментить или обернуть в регексп-то легко, но это уже не будет код :)
Как говорится, в перле можно сделать всё. Конкретно эту задачу можно решить даже без source фильтров, самыми штатными средствами перла :р
источник

RH

Roman Hamster in Modern::Perl
Доброе утро коллеги.
У меня неболшая проблемка с кодировками - помогите кто чем может пожалуйста.
Суть: Есть виндовый клиент, который ходит по http на перл.
Контент кодируется/декодируется.

Вообщем когда перл отдает контент, то клиент принимает некорректные данные (некоторые байты в строке меняются).

Вообщем по коду:
warn join(",", map { unpack 'H*', $_} split('', $encrypted_text));
 # 7B,2C,EF,7C,C7,21,C2,58,B8,F0,34,34,E9,B0,12,DB,7B,2C,EF,7C,C7,21,C2,58,B8,F0,34,34,E9,B0,12,DB
( это верная последовательность байт которую перл показывает в консоле)

Теперь отдаю:

 # Result 1 (received remotely)
$self->render(inline => $encrypted_text );
 # 7B,2C,C3,AF,7C,C3,87,21,C3,82,58,C2,B8,C3,B0,34,34,C3,A9,C2,B0,12,C3,9B,7B,2C,C3,AF,7C,C3,87,21,C3,82,58,C2,B8,C3,B0,34,34,C3,A9,C2,B0,12,C3,9B,0A
( эта последовательность, которую получил клиент)

 # Result 2 (received remotely)
 $self->render(inline => decode("UTF-8", $encrypted_text ) );
 # 7B,2C,EF,BF,BD,7C,EF,BF,BD,21,EF,BF,BD,58,EF,BF,BD,EF,BF,BD,34,34,EF,BF,BD,12,EF,BF,BD,7B,2C,EF,BF,BD,7C,EF,BF,BD,21,EF,BF,BD,58,EF,BF,BD,EF,BF,BD,34,34,EF,BF,BD,12,EF,BF,BD,0A
( эта последовательность, которую получил клиент - вариант второй)

Есть хоть какие нибудь идеи как вернуть нужную последовательность?

PS: закодированное сообщение "12345678123456781234567812345678"
источник

R

Roman in Modern::Perl
1. Мелочи нет. Иди работать.
2. На лицо перекодировка из чего-то в UTF-8. Смотри входящие данные, разберись, что декодирует и почему. Полезный инструмент для исследования: Devel::Peek::Dump().
3. Самым простым способом борьбы в вебе является кодирование бинарных данных base64 или передача в теле запроса с указанием, что это бинарный формат.
источник

YK

Yegor K in Modern::Perl
если это mojo, то бинарные данные там отдавать через
->render(data => $binstr)
upd: чекнуть что в заголовке content-type отдаётся application/octet-stream
источник

SZ

Sergey Zhmylove in Modern::Perl
Передавай строкой :)
источник

RH

Roman Hamster in Modern::Perl
Спасибо - с data все заработало!!!
источник

VG

Vadim Goncharov in Modern::Perl
причем тут encrypted, когда речь о кодировках?
источник

RH

Roman Hamster in Modern::Perl
encrypted_text - последовательность байт ( в  моем случае это зашифрованный текст )
источник

RH

Roman Hamster in Modern::Perl
но из за кодировки байты ломались
источник

RH

Roman Hamster in Modern::Perl
и как следствие дешифровка не проходила на клиенте
источник

VG

Vadim Goncharov in Modern::Perl
так зашифрованный или закодированный? это разные вещи
источник

VV

Vladimir Varlamov in Modern::Perl
нет
источник

VV

Vladimir Varlamov in Modern::Perl
utf8 тоже шифр
источник

VG

Vadim Goncharov in Modern::Perl
ни разу
источник

VG

Vadim Goncharov in Modern::Perl
это кодировка
источник

VG

Vadim Goncharov in Modern::Perl
шифрование - это когда есть намеренное сокрытие, и обязательно применяется ключ/пароль
источник

RH

Roman Hamster in Modern::Perl
В целом все заработало

было
$self->render( inline => $self->aes->encrypt($text, $key) );

стало
$self->render( data => $self->aes->encrypt($text, $key) );
источник

VG

Vadim Goncharov in Modern::Perl
а кодировка - всего лишь способ представления
источник

AK

Andrey Karepin in Modern::Perl
кодирования
источник