Re: crc check for JPEG file exists

From: Date: Wed, 27 Feb 2008 11:55:08 +0000
Subject: Re: crc check for JPEG file exists
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-270274@lists.php.net to get a copy of this message
Olav Mørkrid wrote:
hello is crc32() an acceptable way of managing whether a JPEG file exists (in a database or similar collection)? i mean doing a crc32() on the binary data of the JPEG file, and then check the database if there is already another entry with the same CRC. the database has relatively few images (some thousands). is there any chance of collision (two different JPEG images generating the same CRC) that is anywhere near likely, or is this extremely remote? advice would be appreciated. Hello,
I suggest you put the md5 result in de DB, so you only have to create one md5 on request and compare that one with the DB result. You can put an index on that field as well, for speed. On a filesystem I would make the md5 hash part of the path/filename of the JPEG. Or make a symlink from the hash to the image path. This makes lookup much faster since you spread the load of computing the md5 over time. Doing two md5 calculations for each file to match is intensive. So instead of doing: $file1 = file_1.jpg $file2 = file_2.jpg if (md5($file1) === md5($file2)) { .. } You better do (something like it): $hash = md5($file); if (file_exists('image_'.$hash.'.jpg')) { .... } Just my thoughts. Kind regards, Aschwin Wesselius

« previous php.general (#270274) next »