Bon la version 1 étant codée à la Rache, les résultats étaient différents entre x86 et x86_64.
La version 2[1] a été testée sur x86, x86_64 et sparc32 (ma bonne vieille station sun) et les résultats sont identiques. Les fonctions de PRNG et de CRC ont été embarquées dans le code, les lettres 0,O, o, 1 et l ont été supprimées du résultat en sortie.
La sortie est plus générique puisque c'est du csv (la première ligne est l'ID de la carte), donc facilement utilisable pour générer n'importe quel format.
Finalement la version 2 a un code plus propre, mais toujours codé à la Rache (mais moins). Le PRNG vient de "man 3 rand" légèrement modifié, le CRC est un Adler-32 tel que décrit sur wikipédia. Pour réduire la faiblesse de Adler-32 (fonctionne mal sur une centaine d'octets), l'ID est généré à l'aide de l'adresse email + l'adresse email xorée 32 fois avec 32 valeurs choisies manuellement.
# Version 2
Posté par Etienne Bagnoud . En réponse au journal Carte pour mot de passe. Évalué à 3.
La version 2[1] a été testée sur x86, x86_64 et sparc32 (ma bonne vieille station sun) et les résultats sont identiques. Les fonctions de PRNG et de CRC ont été embarquées dans le code, les lettres 0,O, o, 1 et l ont été supprimées du résultat en sortie.
La sortie est plus générique puisque c'est du csv (la première ligne est l'ID de la carte), donc facilement utilisable pour générer n'importe quel format.
Finalement la version 2 a un code plus propre, mais toujours codé à la Rache (mais moins). Le PRNG vient de "man 3 rand" légèrement modifié, le CRC est un Adler-32 tel que décrit sur wikipédia. Pour réduire la faiblesse de Adler-32 (fonctionne mal sur une centaine d'octets), l'ID est généré à l'aide de l'adresse email + l'adresse email xorée 32 fois avec 32 valeurs choisies manuellement.
J'ai bien gagner mon week-end là, non ?
[1] http://www.tchetch.net/passcard/passcard2.c
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell