Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шифрование + кодирование 
:(
    Опции темы
T0nic
Дата 22.10.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я принимаю почту по протоколу POP3 пользуясь для сохранения сообщений компонентом TIDMessage. Иногда письма содержащие в теме или графе "От кого" русские буквы приходят в виде:

From: "=?koi8-r?Q?=F7=C9=D4=C1=CC=C9=CA_=E5=D7=C7=C5=CE=D8=C5=D7=C9=DE?="
Subject: =?koi8-r?Q?=F0=D2=C9=D7=C5=D4?=

Я задавал вопрос когда мне приходило сообщение с такой строкой:

=?koi8-r?B?8sHT09nMy8lATWFpbC5SdQ==?= <[email protected]>

Мне посоветовали то что между =?koi8-r?B? и ?= декодировать по base64 и полученное перекодировать из koi8-r Все получилось. Но с первыми двумя строками не получается, насколько я вижу, там нужно использовать не base64, но опрос такой:

Как определить что строка зашифрована??? или нужно самому парсить строку и смотреть?? И какой тут используется механизм шифрования??
PM MAIL   Вверх
Matematik
Дата 22.10.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



ищи в Indy. там что-то было
PM MAIL WWW ICQ   Вверх
T0nic
Дата 22.10.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а где именно?? там есть перекодировщики base64, uu но как определить зашифрована ли строка??
PM MAIL   Вверх
Matematik
Дата 22.10.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



об этом говорит этот символ
=?koi8-r?Q?
PM MAIL WWW ICQ   Вверх
T0nic
Дата 23.10.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Matematik @ 22.10.2006,  23:53)
об этом говорит этот символ
=?koi8-r?Q?

Значит надо парсить строку самому?
И значит каким кодировчиком закодирована данная строка??
Тогда вопрос, а какие вообще есть символы и кодировщики им соответствующие??

Добавлено @ 15:10 
все, разобрался, что за кодировка, остался один вопрос, все таки самому нужно строку смотреть, чтобы понять закодирован ли??
PM MAIL   Вверх
Matematik
Дата 23.10.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



IdCoderHeader.pas

function DecodeHeader(Header: string):string;

Добавлено @ 15:22 
это Indy
PM MAIL WWW ICQ   Вверх
T0nic
Дата 23.10.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Matematik @ 23.10.2006,  15:22)
IdCoderHeader.pas

function DecodeHeader(Header: string):string;

Добавлено @ 15:22 
это Indy

но эта функция возвращает мне ту же самую строку smile 
PM MAIL   Вверх
Matematik
Дата 23.10.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(T0nic @  23.10.2006,  21:54 Найти цитируемый пост)
но эта функция возвращает мне ту же самую строку

показывай как используешь.
у меня работат
PM MAIL WWW ICQ   Вверх
T0nic
Дата 23.10.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

uses IdCoderHeader;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:= DecodeHeader(edit1.Text);
end;



В Edit вписываю одну из строк, но в лабел выводится то же самое...
PM MAIL   Вверх
Matematik
Дата 23.10.2006, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(T0nic @  23.10.2006,  22:01 Найти цитируемый пост)
В Edit вписываю одну из строк, но в лабел выводится то же самое... 

жалко
 smile 


PM MAIL WWW ICQ   Вверх
T0nic
Дата 24.10.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я просмотрел исходник этого файла и понял, вначале она находит кодировку, здесь указана кодировка ko8-r, а потом ЕСЛИ найдена кодирвка, то она декодирует по ключу (base64, uu ит.д.) но в исходнике указаны только 2 кодировки: ISO и WNDOWS, поэтому она не не знает про кодировку koi-8, следовательно переменная EncodingFound (логический тип) имеет значение false и она возвращает ту же строку. 


Matematik,  А ты смог мою строу так ждекодировать?? Если да, то какая у тебя версия Indy ??
PM MAIL   Вверх
Matematik
Дата 24.10.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(T0nic @  24.10.2006,  12:42 Найти цитируемый пост)
А ты смог мою строу так ждекодировать??

Смог, потому что я IdCoderHeader.pas очень давно правил, чтобы находил остальные кодировки. Я про это просто забыл
PM MAIL WWW ICQ   Вверх
T0nic
Дата 24.10.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

Это сообщение отредактировал(а) T0nic - 24.10.2006, 15:41
PM MAIL   Вверх
Matematik
Дата 24.10.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(T0nic @  24.10.2006,  16:37 Найти цитируемый пост)
а мог бы прислать свой переделанный юнит?? посмотри в личке, я тебе почту скинул.

не могу. я его удалил
Очень большая проблема изменить свой, алгоритм разбора элементарный
У меня Indy10

вот тот кусок из 10
Код

  LEncodingStartPos := PosIdx('=?ISO', UpperCase(Header), 1); {do not localize}
  if LEncodingStartPos = 0 then begin
    LEncodingStartPos := PosIdx('=?WINDOWS', UpperCase(Header), 1); {do not localize}
  end;
  if LEncodingStartPos = 0 then begin
    LEncodingStartPos := PosIdx('=?KOI8', UpperCase(Header), 1); {do not localize}
  end;

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


Новичок



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

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



я знаю, я это джогдался изменить, у меня получалось так:

Код

   encodingstartpos:=PosStartAt('=?ISO', UpperCase(Header),encodingstartpos+1);
    if encodingstartpos = 0 then
      encodingstartpos:=PosStartAt('=?WINDOWS', UpperCase(Header),encodingstartpos+1);
      if encodingstartpos = 0 then
      encodingstartpos:=PosStartAt('=?KOI8', UpperCase(Header),encodingstartpos+1);


Там в двух местах такая штука, но все равно ниче не меняется, та же строка... smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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