Ce code source a été basé sur adler32demande de commentaires sur la somme de contrôle rsp32
Il fournit aparently le même niveau de sécurité de crc32, mais 50% plus rapide
Si elle a un défaut quelqu'un peut me montrer où est le défaut et pourquoi il vaut mieux rester avec crc32?
Il est difficile de trouver des collisions de données dans le même niveau que crc32, au moins dans mes tests
unsigned int rsp32 (unsigned int adler, const unsigned char *buf, unsigned int len)
{
uchar s1 = adler & 0xff;
uchar s2 = (adler >> 8) & 0xff;
uchar s3 = (adler >> 16) & 0xff;
uchar s4 = (adler >> 24) & 0xff;
int svansa = 0;
int ok12 = len;
if (buf == NULL)
{
return 1L;
}
while (ok12)
{
s1 += buf[svansa++];
s2 += s1;
s3 += s2;
s4 += s3;
ok12--;
}
return s1 + (s2 << 8) + (s3 << 16) + (s4 << 24);
}