Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать хэш файла
 
 автор: roma67   (23.04.2012 в 18:47)   письмо автору
 
 

Тут вопрос задан про копирование файлов
http://softtime.ru/forum/read.php?id_forum=1&id_theme=86265&page=1

  Ответить  
 
 автор: cheops   (23.04.2012 в 19:52)   письмо автору
 
   для: roma67   (23.04.2012 в 18:47)
 

Размер может не измениться, например, человек правит цифру. Хэш - это на пальцах "отпечатки пальцев" текста. Процедура получения последовательности символов, повторное применение которой к тому же тексту дает точно такую же последовательность. Есть хэши, которые не уникальны, т.е. разные тексты могут дать одну и ту же последовательность. Есть уникальные хэши, ни один текст не может дать такую же последовательность - у всех она уникальная. Для последнего случая можно использоваться алгоритм md5, который в PHP реализован в одноименной функции md5() - в качестве единственного параметра передаете ему текст, он возвращает - уникальный хэш. Если не хотите читать содержимое файла, есть функция md5_file(), которая возвращает хэш сразу для файла.

  Ответить  
 
 автор: roma67   (06.05.2012 в 19:43)   письмо автору
 
   для: cheops   (23.04.2012 в 19:52)
 

Про уникальность md5
http://ru2.php.net/manual/ru/function.md5-file.php
В соответствии с документацией, Хэш представляет собой 32-значное шестнадцатеричное число, используя » алгоритм MD5 RSA Data Security, Inc.
Странно.
Если применить к значению размера файла md5 , тогда результатом, будет уникальное 32-значное шестнадцатеричное число.
Но если применить к содержимому файла md5, тогда результатом будет- 32-значное шестнадцатеричное число и не обязатально уникальным.

-В документации об этом ни слова( нет слов: "уникальное 32-значное шестнадцатеричное число")
-С точки зрения комбинаторной математики, тоже не выходит уникального 32-значного шестнадцатеричного числа.

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

  Ответить  
 
 автор: Sfinks   (10.05.2012 в 15:10)   письмо автору
 
   для: roma67   (06.05.2012 в 19:43)
 

Всегда уникального значения не будет. Хотя бы из тезиса "С точки зрения комбинаторной математики, тоже не выходит уникального 32-значного шестнадцатеричного числа". Однако вероятность получения одинакового 32-значного шестнадцатеричного числа для двух разных текстов равняется 1 деленной на 16 в 32ой степени. Попробуйте посчитать чему равно это число. Поэтому, с точки зрения теории вероятности, это число вполне можно считать уникальным.

  Ответить  
 
 автор: roma67   (10.05.2012 в 13:22)   письмо автору
 
   для: roma67   (23.04.2012 в 18:47)
 

.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования