у меня php версия старая. Добавил в код еще такую функцию вместо hex2bin()
function hextobin($hexstr)
{
$n = strlen($hexstr);
$sbin="";
$i=0;
while($i<$n)
{
$a =substr($hexstr,$i,2);
$c = pack("H*",$a);
if ($i==0){$sbin=$c;}
else {$sbin.=$c;}
$i+=2;
}
return $sbin;
}
1) Мне интересно как оно поступит с последним блоком, который будет меньше 1кб. Оно добавит что-то до него или обрежет до имеющихся байт или или посчитает те байты, что там есть+пустота?
2) Как работает функция fread($handle,1024), она будет считывать по куску в 1кб пока не дойдет до конца видео или считает 1кб и все?
3) И еще вот эта функция интересна fseek($handle,-1024,SEEK_END), я не могу понять как с ней работать, потому что ее нельзя ничему присвоить так как она возвращает 0 или 1, а не сам блок в 1кб.
4) Я видел еще вот такой код:
$hash=fread($handle,1024);
fseek($handle,-1024,SEEK_END);
$hash .=fread($handle,1024);
Как он будет работать? по сути мы 1 и 3 строку повторяем, только между ними функция fseek($handle,-1024,SEEK_END)
latteo: мне принципиально чтобы кусок вычислялся точно, потому что мне по заданию нужно хэшировать с конца блоками и хэш последнего добавить в предыдущий, а потом предыдущий блок+хэш того блока что идет заним(последний) прохэшировать и передать в предыдущий и повторить, и так до начала файла.
А если мне по заданию нужно разбить файл на блоки по 1024 байта и начиная с конца к каждому следующему блоку нужно добавлять хэш предыдущего, то какой функцией мне можно условно делить файл? и еще как быть с последним куском(хвостом) если он меньше 1024 байт?
Извиняюсь, вопрос немного не правильно поставил. Мне нужно разделять файл на блоки для хэширования каждого блока. Я так понимаю, что файл делиться условно и считывается кусками, потом каждый кусок хэшируется
Ну а если мне например нужно реализовать программу расшифровки на С++ или С# шифротекста по определенному ключу(он у меня есть), то как вообще происходит сам процесс расшифровки, что нужно знать для этого?
Евгений Куманин: да, есть. Это будет типа интернет магазин и нужно, чтобы обычный покупатель мог там посмотреть свои заказы в подробностях, поставщик мог посмотреть, что и когда у него купили, а менеджер это все вместе и связаться с ими обеими для уточнения заказа.