Question

Supposons que j'ai une série de numéros d'index qui se compose d'un chiffre de contrôle . Si j'ai un échantillon assez juste (disons 250 numéros d'index de l'échantillon), dois-je un moyen d'extraire l'algorithme qui a été utilisé pour générer le chiffre de contrôle?

Je pense qu'il devrait y avoir une approche programmatique atleast pour trouver un ensemble d'algorithmes possibles.

UPDATE: La longueur d'un numéro d'index est de 8 chiffres dont le chiffre de contrôle

.
Était-ce utile?

La solution

Non, pas dans le cas général, puisque le nombre de possible algorithmes est beaucoup plus que ce que vous pouvez penser. Un espace d'échantillon de 250 peut ne pas être suffisant pour faire une analyse numérique appropriée.

Pour un exemple extrême, disons que vos échantillons sont les 15 chiffres. Vous pas être en mesure de détecter de manière fiable l'algorithme si elle a changé le comportement pour les plus de 15 caractères.

Si vous voulez être sûr, vous devriez désosser le code qui vérifie les numéros de validité (le cas échéant).

Si vous savez que l'algorithme est tiré d'un petit sous-ensemble que « chaque algorithme possible », alors il pourrait être possible. Mais les algorithmes peuvent être seulement la moitié de l'histoire -. Il y a aussi le cas où les multiplicateurs, exponentiation et enveloppantes les points changer même en utilisant le même algorithme

Autres conseils

paxdiablo est correct, et vous ne pouvez pas deviner l'algorithme sans aucune autre hypothèse (ou tout simplement avoir tout l'espace de l'échantillon - alors vous pouvez définir l'algorithme par une table).

Cependant, si le chiffre de contrôle est calculé selon une formule linéaire en fonction des « chiffres de données » (ce qui est un cas très fréquent, comme vous pouvez le voir dans l'article de wikipedia), des échantillons assez donné, vous pouvez utiliser l'élimination Euler.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top