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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> BASE 64 
:(
    Опции темы
saider84
Дата 30.4.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите пожалуйста. Есть ли функция, которая определяет закодирована ли строка в BASE 64.  Или может кто сам писал подобную функцию.
PM MAIL   Вверх
Snowy
Дата 30.4.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А функция простая - попробовать декодировать.
Получилось - да. Не получилось - нет...
PM MAIL   Вверх
mmvds
Дата 30.4.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Snowy, не все так просто.

Если строка содержит любые другие символы кроме:
Код

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=

То она точно не Base 64, вот обратное сказать нельзя :( 
Т.к. Base64 спокойно декодирует любую строку, содержащую вышеперечисленные символы, даже если та не была получена с помошью Base 64.
Пример:
Возьмем строчку 
Код

vingradforum

Она свободно декодируется Base64, получаем
Код

ѕ)а­§_ў»¦

Т.е. если у нас была строчка vingradforum то про нее мы не можем однозначно сказать, Base64 это или строчка написанная от балды.

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


Новичок



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

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



mmvds, а если исходный текст это файл, как поступить в такой ситуации.

Сейчас пользуюсь indy`ской функцией декодирования, отсекаю некодированные файлы по признакам кратности длины.
Может будут еще какие-нить предложения?
PM MAIL   Вверх
mmvds
Дата 3.5.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Проверить весь файл, если в нем присутствует любой символ, не входящий в алфавит Base64
Код

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=

то это не Base64.

Если известен хотябы тип файла, проверять декодированный файл на соответствие формату данного типа.

Также если исходный файл-текстовый и известно, на каком он языке и в какой кодировке, и необходимо отфильтровывать большое кол-во файлов, то можно применить частотный метод  (частота встречаемости символов) чтоб проверять декодированный файл.

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

Это сообщение отредактировал(а) mmvds - 3.5.2008, 12:37
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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