@alexx_mirny

Какую функцию использовать для хеширования блоба в javascript и пхп?

В общем, я для своего сайта пишу загрузчик больших файлов (видео). Он реализован с использованием FileApi, и файл отправляется на сервер кусками по 2 мегабайта. Вместе с куском, я отправлял его хеш md5, реализацию которого нашел в интернете. Но хеши на сервере (php) не совпадают с отправленным, даже если файл 100% был отправлен без ошибок.
вот так он у меня принимается на сервере. отправляю через sendAsBinary(считанный блоб из файла);
$fin = fopen("php://input", "rb");
if ($fin)
{
	$data='';
	while (!feof($fin))
	{
		$data .= fread($fin, 2*1024*1024);
	}
	fclose($fin);
	$seg_hash_normal=$_SERVER["HTTP_MD5"];
	$seg_hash=md5($data);
	if($seg_hash_normal!=$seg_hash)
	{
		header("HTTP/1.0 200 OK");
		echo "bad";
		fwrite($flog,"file upload bad ".$_SERVER["HTTP_PORTION_FROM"]." (".$seg_hash_normal." - ".$seg_hash."\n");
		exit;
	}
}

Подскажите, где может быть ошибка, и какую функцию использовать.
  • Вопрос задан
  • 2533 просмотра
Решения вопроса 1
Если у Вас в проекте нет активных злоумышленников, и Вы используете хеш только для контроля отсутствия случайных ошибок, то используйте что-нибудь намного более простое и быстрое : CityHash или MurMur2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект