CRC файла

evgen@php

Новичок
CRC файла

Необходимо вычислить CRC файла (восьмизначное шестнадцатеричное число (32 бита), являющееся суммой всех байт файла по модулю 232).
Кто-нибудь может помочь с алгоритмом?
 

evgen@php

Новичок
хочется добавить...

Ниже приведена реализация алгортима на java:

private long calculateCRC() throws IOException {
long result = 0;
int ch;
while ((ch = bufReader.read()) != -1 ){
byte highByte =(byte)(ch >> 8);
byte lowByte =(byte)(ch & 0xff);
result = result + highByte + lowByte;
if (result >= UNSIGNED_MAX_VALUE) {
result %= UNSIGNED_MAX_VALUE;
}
}
return result;
}

надо php
 

evgen@php

Новичок
считаю так:

$tmp = fopen('tmp', "ab");
$put = '';
for($i=0; $i<count($tmp); $i++) $put .= $put;
fputs($tmp, $put);
$stat = fstat($tmp);
echo base_convert(crc32($stat['size']), 10, 16);
fclose ($tmp);

система, для которой это делается, сообщает о неправильности результата
 

deek

Новичок
> сообщает о неправильности результата

Что, так и пишет, "Сообщаю: результат неправильный." ?
 

fixxxer

К.О.
Партнер клуба
echo crc32(file_get_contens($filename))

так работает? (для всего файла)
 

Popoff

popoff.donetsk.ua
$tmp = fopen('tmp', "ab");
$put = '';
for($i=0; $i<count($tmp); $i++) $put .= $put;
fputs($tmp, $put);
$stat = fstat($tmp);
echo base_convert(crc32($stat['size']), 10, 16);
fclose ($tmp);
если мне не изменяют мои компилятивные способности, то абсолютно такой же результат выдаст программа:
PHP:
echo dechex(crc32(filesize('tmp')));
или выдаст другой? %)
 
Сверху