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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уникальные имена файлов, СНОВА! 
V
    Опции темы
bems
Дата 26.5.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Snowy @  26.5.2006,  15:26 Найти цитируемый пост)
Но построить стрек имен файлов ведь недолго.
Для этого их совсем не нужно открывать.
Кроме того, если в имени файла уже заложена дата, то не нужно открывать все - можно сориентироваться по имени или дате создания.  
Точно принадлежность файла можно определить только по сигнатуре в хедере - а вдруг чужой?

Добавлено @ 17:50 
Цитата(bems @  26.5.2006,  17:46 Найти цитируемый пост)
Точно принадлежность файла можно определить только по сигнатуре 
И то не точно. Думаю добавить CRC
 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Snowy
Дата 26.5.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Зачем. Просто создай своё персональное расширение для своих файлов.
Например '5123482835.ItsFileOfMyCoolProgram'
Или в конце концов создай GUID и используй его, как собственное расширение.
Файлов с расширением A8D329BD7C8B4E1DB88F3876B602EF64 точно не бывает. 
PM MAIL   Вверх
bems
Дата 26.5.2006, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Snowy @  26.5.2006,  17:59 Найти цитируемый пост)
Просто создай своё персональное расширение для своих файлов
Уже сделал.
Цитата(Snowy @  26.5.2006,  17:59 Найти цитируемый пост)
Файлов с расширением A8D329BD7C8B4E1DB88F3876B602EF64 точно не бывает.
Не бывает. А если глядя на мои юзер скопирует? И скажи что никто этим не займется!
 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Snowy
Дата 26.5.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Главное, что в стандартных условиях большинство файлов сразу отсеится.
А в нестандартных - юзер сам виноват.
Проверку нуно делать перед использованием конкретного файла.
Проверять все - незачем. 
PM MAIL   Вверх
Mechanic
Дата 26.5.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(bems @  26.5.2006,  18:04 Найти цитируемый пост)
Не бывает. А если глядя на мои юзер скопирует? И скажи что никто этим не займется!

Как бы ни ухищрялся, всегда найдётся изобретательный идиот, который сделает именно то, о чем ты не подумал.  smile 
Проще в описании программы написать "в папке данных программы нельзя создавать / изменять / удалять / переименовывать файлы".  Никто ведь Биллу не дотумкается выставить счет, если при удалении случайных файлов пакета Microsoft Office, тот случайно перестанет работать.  smile 

А защитить файлы можно просто раздачей прав на папку (NTFS rules).

Цитата(bems @  26.5.2006,  14:56 Найти цитируемый пост)
Клиент посылает проге дату последнего известного сообщения лога. В хедере файла есть начальная и конечная дата лога.

Не знаю. Если бы меня попросили реализовать нечто подобное, я бы полностью абстрагировался от этих "изобретательных идиотов", и сделал бы диапазон дат лога в его имени. Типа 

ГГГГММДДЧЧММСС_ГГГГММДДЧЧММСС.MyExt

тогда бы поиск файлов был бы простым перебором всех имен.

Просто в этом случае нужно было бы проверять корректность системных часов (да хоть при запуске), чтоб не было запусков "в прошлом".

И уж если очень захотелось бы быть уверенным в целостности файла, то прикрутил бы к нему какой-нить хэш в конце (типа CRC, SHA1 etc, только чуть подкриптованных и измененных, чтоб отсеять и очень изобретательных идиотов  smile ) 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
bems
Дата 27.5.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Snowy @  26.5.2006,  18:13 Найти цитируемый пост)
Главное, что в стандартных условиях большинство файлов сразу отсеится.
А в нестандартных - юзер сам виноват.
А юзеру эта прога и не нужна. Нужна она админу. Так что "юзер виноват" не оправдание

Цитата(Snowy @  26.5.2006,  18:13 Найти цитируемый пост)
Проверку нуно делать перед использованием конкретного файла.
Используются на другой машине. Что, отправлять кучу лишнего, а там уже разбираться? Дорорговато...

Цитата(Mechanic @  26.5.2006,  23:51 Найти цитируемый пост)
Никто ведь Биллу не дотумкается выставить счет, если при удалении случайных файлов пакета Microsoft Office, тот случайно перестанет работать
Если моя прога перестанет работать юзер только обрадуется. Вот если бы тачку перезагрузить в случае глюков smile 

Цитата(Mechanic @  26.5.2006,  23:51 Найти цитируемый пост)
А защитить файлы можно просто раздачей прав на папку (NTFS rules).
это отдельный разговор

Цитата(Mechanic @  26.5.2006,  23:51 Найти цитируемый пост)
И уж если очень захотелось бы быть уверенным в целостности файла, то прикрутил бы к нему какой-нить хэш в конце (типа CRC, SHA1 etc, только чуть подкриптованных и измененных, чтоб отсеять и очень изобретательных идиотов   )  

Очень изобретательные еще что-нибудь придумают, но защититься от скопированного и переименованого моего же файла нужно.
 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mechanic
Дата 27.5.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(bems @  27.5.2006,  13:28 Найти цитируемый пост)
Проверку нуно делать перед использованием конкретного файла.

Используются на другой машине. Что, отправлять кучу лишнего, а там уже разбираться? Дорорговато...


Тогда нужно хэш тулить уже в имя файла.  smile  Например, помимо даты/времени (с секундами) добавлять в имя рэндомное число, и хитрый хеш на эту часть имени. Тогда легко проверить имя валидно / нет, даже не загружая файл. 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
bems
Дата 27.5.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Спасибо, ребята. 
Останавливаюсь на следующем:
 1. Файлы называются ггггммддччммссс.gsrtrs5ysrwrevthh.ext         где ггггммддччммссс время ПЕРВОГО сообщения в логе, а gsrtrs5ysrwrevthh выбирается во время сохранения
 2. Вхедере оставляю и время первого и время последнего сообщения.
 3. При чтении директории для выбора очередности обработки игнорирую все после первой точки
 4. Отправляю на тачку админа файлы, в имени которых есть дата и время после указанных в запросе клиентской части проги.
 5. Открываю файл, предшествующий по дате и времени (тех что в имени) первому отправленному и проверяю на частичное соответствие запросу. Если запрошенная клиентом дата где-то в середине этого файла, то отправляю и этот.

Думаю, тема закрыта. Если есть замечания  по поводу этой схемы, то прошу... 

Это сообщение отредактировал(а) bems - 27.5.2006, 16:06


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mechanic
Дата 27.5.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(bems @  27.5.2006,  16:05 Найти цитируемый пост)
а gsrtrs5ysrwrevthh выбирается во время сохранения

По какому принципу? И есть ли фильтрация по именам до открытия файлов и чнения хедеров?

Представим, я тупой юзверь, и запустил вот такую программу:
Код

 ггггммддччммссс := Завтра, вечер;
 Сч: Целое = 0;
 Для Сч := 0 по МаксЦелое Цикл
      ИмяФайла :=  ггггммддччммссс + ".gsrtrs5ysrwrevthh" + 
      Строка(Сч)+".ext";
      СоздатьФайл(Именно_Та_Злосчастная_Папка + ИмяФайла);
 КонецЦикла;

smile
Админ асилит стока файлов? 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
Snowy
Дата 27.5.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Просто нужно еще на стороне клиента проверять - правильный файл или нет. 
PM MAIL   Вверх
bems
Дата 27.5.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Mechanic @  27.5.2006,  17:11 Найти цитируемый пост)
Цитата(bems @  27.5.2006,  16:05 )
а gsrtrs5ysrwrevthh выбирается во время сохранения


По какому принципу?
рандомно, пока ERROR_ALREADY_EXISTS  smile 

Цитата(Mechanic @  27.5.2006,  17:11 Найти цитируемый пост)
И есть ли фильтрация по именам до открытия файлов и чнения хедеров?
да. ты ж сам предлягал дату в имя внести.

Цитата(Mechanic @  27.5.2006,  17:11 Найти цитируемый пост)
Представим, я тупой юзверь, и запустил вот такую программу:
Цитата(Mechanic @  27.5.2006,  17:11 Найти цитируемый пост)
Админ асилит стока файлов?  


админ - не знаю, сетка - с трудом

Цитата(Snowy @  27.5.2006,  17:17 Найти цитируемый пост)
Просто нужно еще на стороне клиента проверять - правильный файл или нет.  
само собой

  

Это сообщение отредактировал(а) bems - 27.5.2006, 17:35


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mechanic
Дата 28.5.2006, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(bems @  27.5.2006,  17:33 Найти цитируемый пост)
рандомно, пока ERROR_ALREADY_EXISTS

Я ж совсем другое предлагал..  smile 
Предлагал ввести CRC в имя, чтоб валидность его можно было проверить, не открывая файл.

Вот, накропал пример. Там использовал чуть измененный CRC32 - изменил сам полином, и начальное число. Плюс ещё данные XOR'ю ключом. Не думаю, что найдется у вас юзверь, что этот хаш сможет сгенерить без ковыринга в сорцах.  smile 

Вот образцы валидных сгенеренных имен.
200605281950437127B0974C8.ext
2006052819505540079C9687D.ext
20060528195104150BF12C7CA.ext

А по ходу нашел забойную книжу! Советую всем, кто хочет в CRC разобраться
Ross N. Williams "Элементарное руководство по CRC алгоритмам обнаружения ошибок"

 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  FileNameValidator.zip 3,20 Kb
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
bems
Дата 28.5.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Mechanic @  28.5.2006,  19:57 Найти цитируемый пост)
Я ж совсем другое предлагал..  
Я тебя отлично понял smile 
А что делать если имя мое, а содержимое левое? Я имею ввиду, что все равно придется проверять валидность содержимого на стороне клиента. А твой способ - как один из этапов я использую.

За книжку и исходник огромное спасибо. И плюс 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mechanic
Дата 28.5.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Нема за що. Тема просто интересная.  smile

Добавлено @ 21:25 
 smile  (ну не удержался)
Цитата(bems @  28.5.2006,  21:09 Найти цитируемый пост)
А что делать если имя мое, а содержимое левое?


 smile  У меня такое иногда после праздников бывает..  
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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