À tout hasard, le code de la fonction utilisée
est donné par le script de l'épreuve (pas l'énoncé).
Elle est inspirée d'un commentaire sur une page du manuel php, qui en donne une version optimisée:
http://www.php.net/manual/fr/function.crc32.php#111699Je n'ai pas été voir ce que ça donne sur une machine 32 bits, mais je suis d'accord avec S0410N3 que ça risque de ne pas trop marcher...
Voici une version en python qui fait la même chose, sans le souci de la taille des entiers:
def crc64(s):
poly = 0xC96C5795D7870F42
crc=0
for c in map(ord,s):
for b in range(8):
if (crc^c) & 1:
_poly = poly
else:
_poly = 0
crc = (crc>>1) ^ _poly
c >>= 1
return crc