556 votes

Est 23,148,855,308,184,500 un nombre magique, ou pur hasard?

Les rapports des nouvelles comme cela l'une d'indiquer que le numéro ci-dessus peuvent avoir surgi comme un bug de programmation.

Un homme aux États-unis sauté à sa station-service pour acheter un paquet de cigarettes - seulement pour trouver sa carte au coût de $23,148,855,308,184,500.

C'est de 23 $quadrillion (£14 quadrillion) - le NOUS la dette nationale.*

En hexadécimal, c'est $523DC2E199EBB4 qui ne semble pas terriblement intéressant à première vue.

N'importe qui ont des idées à ce sujet erreur de programmation aurait causé cela?

1447voto

Guffa Points 308133

Ajouter les cents le nombre et vous obtenez 2314885530818450000, qui en hexadécimal est 2020 2020 2020 1250.

Voyez-vous le modèle? Les six premiers octets ont été remplacées par des espaces (hex 20, déc 32).

239voto

Synetech Points 4095

Attendez un instant; il y a quelque chose de louche se passe.

Alors que l'espace-collier explication semble bon, il est peut-être (au moins partiellement) spécieux.

VISA a dit qu'il y avait "moins de 13 000" clients touchés par la snafu avec le Visa Buxx de cartes pré-payées. J'ai trouvé des nouvelles sur plusieurs jusqu'à présent. Josh Muszynski dans le New Hampshire, Jason Bryan dans le Tennessee, Ron Seale dans le Texas, Karen Taylor, fils adolescent à Béthel, et une jeune fille, Elizabeth Lewis dans Owatonna .

Le truc, c'est qu'elles ont toutes le exact même frais: $23,148,855,308,184,500.00. Si le problème était l'espace-rembourrage, alors comment est-ce que tous avaient exactement le même $0x1250 ($46.88 de charge)? Deux d'entre eux avaient acheté des cigarettes à des stations-service, les deux autres avaient payé dans les restaurants, Lewis acheté les oeufs et le lait, le dernier à un magasin de drogue. Tous ces éléments variés arriver pour le même prix? $46.88 pour un restaurant le projet de loi semble ok, mais pour un paquet de cigarettes? pour le lait et les œufs‽

L'espace-rembourrage erreur de sens, sauf qu'il ne tient pas compte de la 0x1250 constante. Pourquoi est-ce que tous d'entre eux a fini avec 0x2020 2020 2020 1250 au lieu de 0x2020 2020 2020 2020 ou numéros différents dans le dernier MOT?

Hmmm, si seulement 13 000 clients ont été touchés, il est peut-être que d'une certaine façon exacte, charge spécifique a déclenché l'erreur. Dans ce cas, il est plus que juste un champ d'erreur. Si c'était juste le champ de texte soit interprété comme un entier de 64 bits, alors pourquoi ne pas d'autres montants en cause, ce qui affecte tout le monde, pas seulement <13 000 personnes. Encore, comment est-il que de 13 000 personnes pourraient juste arrivé à la charge de la même quantité exacte dans la même semaine?

Ils disent que c'est un temporaire "erreur de programmation", et c'est peut-être bien, mais ça pourrait être un piratage chose? Dans ce cas, il serait sans doute un magic-nombre. En fait, il peut être une combinaison des deux: certains pirates de mettre un 0x1250 charge automatique, qui a combiné avec l'espace-rembourrage erreur, provoquant un ou deux de détecter d'éventuelles erreurs.

Le Registre pense que la réponse est en effet le collier-champ d'erreur, mais ne se développe pas sur pourquoi ils sont tous les mêmes, bien que l'un des commentaires que mentionne le nombre éventuellement arrondi à 100 $le plus proche (peu probable puisque les banques et les services bancaires logiciel explicitement aller à des longueurs afin d'assurer la précision).

(Il y a aussi un rapport d'une erreur antérieure.)


Jason Bryant projet de loi:

Jason Bryant's bill

Elizabeth Lewis du projet de loi:

Elizabeth Lewis's bill

Ron Seale du projet de loi:

Ron Seale's bill

Josh Muszynski du projet de loi:

Josh Muszynski's bill

62voto

PaulG Points 7377

Ce qui se passe quand vous faites un achat par carte, c'est que le logiciel se met immédiatement en ligne pour vous assurer que vous avez suffisamment de fonds pour l'achat, mais seulement des lieux de prise sur les fonds de la transaction. À la fin de la journée de travail, alors le logiciel regroupe l'ensemble des transactions passées dans le cours des 24 dernières heures et les soumet à la banque acquéreur pour le traitement.

La soumission à la banque est connu comme le règlement, et l'opération se fait par l'envoi d'un fichier texte dans une structure très rigide, format. (Cela a été de tous les pays développés il y a plusieurs décennies et le nombre de systèmes à l'aide de cela les rend difficile à moderniser)

Chaque transaction apparaît dans le fichier comme une ligne de texte, et c'est en partie la valeur de la transaction. Ce champ doit être de 11 caractères numériques (zéro rembourrée sur le côté gauche), et aura toujours la valeur du plus petit dénominateur commun (dans ce cas cents). 11 caractères numériques accueille les valeurs dans toutes les devises.

Ressemble le processeur de paiement dans ce cas, a apporté quelques modifications à leur logiciel de soumission et à tort remplacé le zéro de remplissage avec de l'espace de remplissage. Tout à fait comment cela a obtenu par un fournisseur de service, b) l'acquisition de la banque et c) Visa sans être ramassé m'échappe. La valeur nette de ce règlement fichier (de 13 000 à haute valeur des transactions) aurait été astronomique, et peut-être que c'était aussi un facteur qui contribue quelque part.

10voto

Hans Passant Points 475940

Le mystère ultime est encore où 12 50. Ils sont les codes ASCII pour les touches Ctrl+R, P. Qui se trouve être le secret de combinaisons de touches à taper pour entrer le code de validation pour QuickBooks.

Lien: Où entrer le code de Validation

Tout à fait un hasard. Je me demande ce qui se passe quand vous tapez ces clés dans le mauvais endroit...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X