I am changing some details of new PAR3 idea, while I make sample client. When I find it is too hard to implement, I change it to easier design. I test some 256-bit hash algorithms for file hash. Then, double check of dupes will be done by checksum of the file's slices. This may be simpler than calculationg MD5 & CRC-128 (total 256-bit) for the same usage. I need to test speed with File IO later, when it runs properly. I don't want that the using hash is selectable from many hash algorithms, as my design is too complex already. At this time, I am making a function for PAR2 compatible packets, so that I can test the source block management and File IO with a PAR2 client.
I made a simple speed tester of hash algorithms. It contains 32-bit hash for comparison; "One at a time", "FNV-1a", "MurmurHash3", and "Lookup3". I may use "Lookup3" for similarity/dupe detection of slices with segment hashes. Because I use CRC-128 for checksum of new PAR3 packet instead of MD5, it shows the speed of CRC-128. For file hash, Cryptgraphic Hash will be recommended. It tests old standard, MD5, SHA-1, SHA-256. I added three fast SHA-3 candidates from
eBASH result; BLAKE, Blue Midnight Wish, and Shabal. I was surprised that BMW and Shabal are similar speed as SHA-1. They didn't selected as SHA-3 finalists, as they might be too fast to be enough secure. For someone interested in those speed, I put the tester here. As my PC is very old, the result may be different from recent PC.
Usage: test.exe [data size or file path]
When there is no file, value is treated in MB. The data is allocated on memory, so max 1GB.