![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| saider84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.4.2008 Репутация: нет Всего: нет |
Подскажите пожалуйста. Есть ли функция, которая определяет закодирована ли строка в BASE 64. Или может кто сам писал подобную функцию.
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
А функция простая - попробовать декодировать.
Получилось - да. Не получилось - нет... |
|||
|
||||
| mmvds |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: 1 Всего: 6 |
Snowy, не все так просто.
Если строка содержит любые другие символы кроме:
То она точно не Base 64, вот обратное сказать нельзя :( Т.к. Base64 спокойно декодирует любую строку, содержащую вышеперечисленные символы, даже если та не была получена с помошью Base 64. Пример: Возьмем строчку
Она свободно декодируется Base64, получаем
Т.е. если у нас была строчка vingradforum то про нее мы не можем однозначно сказать, Base64 это или строчка написанная от балды. |
||||||
|
|||||||
| saider84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.4.2008 Репутация: нет Всего: нет |
mmvds, а если исходный текст это файл, как поступить в такой ситуации.
Сейчас пользуюсь indy`ской функцией декодирования, отсекаю некодированные файлы по признакам кратности длины. Может будут еще какие-нить предложения? |
|||
|
||||
| mmvds |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: 1 Всего: 6 |
Проверить весь файл, если в нем присутствует любой символ, не входящий в алфавит Base64
то это не Base64. Если известен хотябы тип файла, проверять декодированный файл на соответствие формату данного типа. Также если исходный файл-текстовый и известно, на каком он языке и в какой кодировке, и необходимо отфильтровывать большое кол-во файлов, то можно применить частотный метод (частота встречаемости символов) чтоб проверять декодированный файл. На практике как мне кажется должно хватить отсечения по алфавиту, если это обычный файл, вероятность появления хотябы 1 символа не из алфавита очень большая. Это сообщение отредактировал(а) mmvds - 3.5.2008, 12:37 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |