|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
Как назначить уникальное имя файлу?04.11.2015, 03:46. Показов 5492. Ответов 31
Метки нет (Все метки)
Задаю уникальное имя файла при помощи md5($id_будущего_файла_в_таблице.microti me(true));
Какова вероятность повторения md5 хэша? Я понимаю что крайне и крайне мала, но всё же. И что посоветуете вместо md5? Сразу скажу, насколько я знаю, ЛЮБОЙ тип хэширования допускает коллизии. И вообще, если хэшировать строку в данном случае глупо, предлагайте свои версии того, как назначить уникальное имя для файла, БЕЗ единого шанса на повторение. Так как мы тут хардкорщики, я прошу вариант БЕЗ циклов. Слабо?
0
|
|
| 04.11.2015, 03:46 | |
|
Ответы с готовыми решениями:
31
Уникальное имя файла Как сделать проверку на уникальное имя процесса
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||||
| 05.11.2015, 08:57 | |||||
|
Тема началась с того, что Вы спросили - как бы задать уникальное имя файла, да так чтобы безо всяких коллизий, чтобы оно 100% не повторялось, на что я Вам дал очевидный и элементарный ответ: Но при всем при этом, я Вам оказывается чем-то не угодил, или может быть даже обидел где то... Прямо принцесса какая-то. Я Вас совершенно не понимаю. Вы уже можете спокойно, без эмоций и перехода на личности (не ваше дело есть у меня девушка или нет) составить свой вопрос грамотно и окончательно, при ответе на который не будете говорить - "а мне не так, а вот так хочется". Напоминает бриллиантовую руку - "А у вас нет точно такого же, только без крыльев?" (с)
0
|
|||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 05.11.2015, 14:18 [ТС] | |
|
pav1uxa, Ладно, приятель. Прости. Я действительно нахамил тебе как то. Я не хотел. Настроение просто плохое было.
А сейчас всё классно. Но ты слишком запутанные варианты предлагал, которые совсем не то что мне было нужно. Я просил просто уникальности имени файла. И прочти нашу ветку диалога с Jodah, он сразу же понял что мне нужно. И кстати да, ВК для меня - функциональный вдохновитель. Прекрасный сайт в плане функциональности. Но это здесь совсем не при чём. Тебя что, когда просят новички "Как сохранить пароль в БД?" ты предлагаешь им вариант без хэширования? Если ты тру, думаю твой ответ Нет. Это ведь безопасность которую даже не обсуждают. Так и с именем файла. Явная последовательность имён не практична и не безопасна. Кстати в целом - клёвый форум. Дизайн конечно жуткий отстой, но в целом отличный инструмент поиска дискуссий.
0
|
|
|
|
||
| 07.11.2015, 16:58 | ||
|
Читаю тему... бред! Нет, даже не на - БРЕД!!!!!
Я тут новенький на форуме, может обижу кого-то из "авторитетов"... Уникальность достигается привязкой к последовательности чего-либо: например времени, идентификатора, порядкового номера и т.п. Генерация случайности породит коллизию. Что касается второго. Повторить MD5 ох как нужно постараться. Не нравится md5 - попробуй sha Теперь что касается первого. нет ничего лучшего как метка времени. Не реально (ну если только в лабораторных целях) загрузить несколько файлов в одну и туже наносекунду. Но допустим реально. Тогда может быть прибавить порядковый номер. Но может возникнуть (опять же не реальная ситуация) проблему при слиянии этих файлов... когда совпало и время и порядковый номер... Тогда можно добавить РАНДОМ.. Если и тут проблема, ну так поставь два РАНДОМА подряд..
0
|
||
|
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
|
||||||
| 07.11.2015, 18:28 | ||||||
Да и изначально задача состоит в исключении возможности повторов. Да, такая ситуация может возникнуть 1 раз из миллиона, но В общем, громкие слова, но нормального (или хотя бы нового) решения вы не предложили.
1
|
||||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 07.11.2015, 18:52 [ТС] | |
|
Jodah, Хорошо что есть люди которые объясняют выскочкам всё вместо меня.
Всё верно, благодарю.
0
|
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
||
| 07.11.2015, 18:56 | ||
|
Не по теме: Из бреда тут только Ваш пост. Из которого очевидно, что Вы даже тему целиком не прочитали.
0
|
||
|
|
||||||
| 07.11.2015, 20:03 | ||||||
Номер по порядку - решений много - проверяем файлы в папке, делаем +1 и радуемся (нормальные файловые менеджеры да и ОС такое делаю без проблем) - используем БД (как было сказано в теме). Но создавать БД ради уникальности - не целесообразно. Допустимо, но не целесообразно. Оправдание будет если в таблице буде ещё что-то: описание, автор и т.п. и т.д. Допустимость совпадений - решений ещё больше.. суть в том на сколько мы можем пойти - случайное число от 1 до тысячи - случайное число от 1 до миллиарда - дата-время - дата-время+миллисекунды - дата-время+миллисекунды+имя файла - дата-время+миллисекунды+имя файла+размер файл если считать что MD5 32 символа, то [дата-время+миллисекунды] по логике меньше. Вот и нужно думать что и как использовать. Если одна из миллиона записей не пройдёт, то не велика потеря. В эту погрешность может попасть и разрыв соединения с сервером. А что касается обсуждений, ну так просто мусолили все возможные варианты. И автор согласился что AUTO_INCREMENT это лучший вариант. Да я не против. Хороший вариант, но супер не оптимальный. PS
Добавлено через 20 минут ...совсем забыл о md5_file() и sha1_file() Если значения совпадут, то я думаю ничего страшно в перезаписи файлов не будет.. по сути они идентичны
0
|
||||||
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||
| 07.11.2015, 20:28 | |||
|
Не по теме: Тогда зачем Вы пишете все то, о чем тут уже говорилось? Не по теме: Вы не поверите, но даже обвинение в переходе на личности в сторону данного пользователя тут уже было озвучено :D Возможно нужно еще прочитать несколько раз и еще внимательнее. А потом почитать свои посты и подумать - а чего нового Вы принесли в эту тему?
0
|
|||
|
|
|
| 07.11.2015, 20:52 | |
|
pav1uxa, да вот не поверишь, хотел об этом сказать что автор вопроса уже извинялся, но что-то не написал.. надеюсь что это просто случайность в высказываниях... Да и адресовано всё же это было конкретному человеку.
..Нового принёс две упомянутые мной функции . Я бы сказал это очень реально. Хотя никогда не использовал их сам, не уверен просто в быстродействииНе по теме: PS
0
|
|
|
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
|
||||
| 07.11.2015, 21:07 | ||||
|
Не по теме: Причём здесь правила сообщества? :) У ТС есть конкретная задача, мы предложили возможные варианты, вы назвали всё вышеописанное бредом, но в итоге просто повторили уже озвученные варианты, причём не учитывая информацию, которая выяснилась в ходе дискуссии. Логично, что в ответ вы получили некоторую долю негатива.
0
|
||||
|
|
|||||||||||
| 07.11.2015, 21:55 | |||||||||||
|
Jodah, ну если исходить из первого вопроса что человек хочет чтобы файлы не повторялись. И дальше.. что же вы все упрямо твердите читал ли я тему
![]() Вот давай из цитаты что ты привёл... AlexBitard хочет сделать так чтобы название файла никто не знал и предполагается создать связующую таблицу
И теперь про бред. Извините все не так высказался.. Я имел в виду обсуждение изначально не совсем "правильного" вопроса. Просто вспомнилось раньше все спрашивали "как запретить копирование контента со страницы" )))) это из той же области. Теоретически я видел описание проблем коллизии MD5, практически никто не смог проверить Да ещё автор вопроса просит привести пример "без цикла".. Это как? Алгоритм создания уникального имени подразумевает чтобы не было повтора. microtime() - это уже практически уникально, стоить даже добавить IP в качестве соли или любой RAND и повторить даже теоретически не возможно...
0
|
|||||||||||
| 07.11.2015, 22:09 | |
|
Не по теме: Теоретически повторить возможно все, что имеет конечную длинну :D
0
|
|
| 07.11.2015, 22:09 | |
|
Помогаю со студенческими работами здесь
32
Как назначить иконку исполняемому файлу приложения Как назначить иконку динамически скомпилированному exe-файлу
Уникальное имя Дано полное имя файла, т.е путь к файлу, имя и расширение. Выделить из строки только имя первого католога Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|