Is there any classic 3 byte fingerprint function?

906 Views Asked by At

I need a checksum/fingerprint function for short strings (say, 16 to 256 bytes) which fits in a 24 bits word. Is there any well known algorithm for that?

2

There are 2 best solutions below

0
On BEST ANSWER

I propose to use a 24-bit CRC as an easy solution. CRCs are available in all lengths and always simple to compute. Wikipedia has a matching entry. The quality is far better than a modulo-reduced sum, because swapping characters will most likely produce a different CRC.

The next step (if it is a real threat to have a wrong string with the same checksum) would be a cryptographic MAC like CMAC. While this is too long out of the book, it can be reduced by taking the first 24 bits.

0
On

Simplest thing to do is a basic checksum - add up the bytes in the string, mod (2^24).

You have to watch out for character set issues when converting to bytes though, so everyone agrees on the same encoding of characters to bytes.