2009-11-18 5 views
0

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); 
} 

Répondre

0

Il ne vous fournir le même niveau de sécurité que crc32, qui est « aucune sécurité ". Les checksum CRC et ADLER ne sont pas des hachages cryptographiques et ne sont pas conçus pour résister à une attaque délibérée. Ils sont conçus pour se prémunir contre les erreurs involontaires, comme le bruit de ligne, et c'est tout. Cela dit, cela ressemble à une somme de contrôle raisonnable.

Questions connexes