Question

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?

Was it helpful?

Solution

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. 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 taking the first 24 bits.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top