Чи є 23,148,855,308,184,500 магічне число чи рівний шанс?


556

Новини повідомляє , такі , як це один показує , що вказане число може виникнути як програмування помилка.

Чоловік у Сполучених Штатах вискакував на свою місцеву АЗС, щоб придбати пачку сигарет - лише для того, щоб знайти свою картку, яку стягують 23,148,855,308,184,500 доларів.

Це 23 квадратних мільйони доларів (14 квадратних мільйонів фунтів стерлінгів) - це багаторазовий борг США.

У шістнадцятковій формі це $ 523DC2E199EBB4, що не здається надзвичайно цікавим на перший погляд.

У когось є думки про те, яка помилка програмування спричинила б це?


31
нудно відвідувач АЗС?
txwikinger

217
Ну Обама сказав, що у нього був новий стимулюючий план у справах щодо зменшення дефіциту ...
Крістофер Кляйн

25
Яку саме кредитну карту має цей хлопець, що ця транзакція пройшла і призвела до $ 15 в оплаті за овердрафт ... АЗС також, мабуть, незадоволений з приводу 2% комісії за обробку кредитної картки.
Нік Бастін

42
Пасхальне яйце від програміста, якого незабаром звільнять;)
Матвій Віт

28
Можливо, це якась нова боротьба з курінням. ("Подивіться, скільки вам дійсно коштує куріння!" :-)
Slapout

Відповіді:


1447

Додайте центи до числа, і ви отримаєте 2314885530818450000, що в шістнадцятці - 2020 2020 2020 1250.

Ви бачите візерунок? Перші шість байтів були перезаписані пробілами (hex 20, dec 32).


56
Ще раз доведіть, що пробіл не є нешкідливим.
Ерік

547
якщо це правда, ви щойно виграли приз за "найкращу налагодження року" :)
Стефано Борині

82
VISA може знадобитися йому більше, ніж NASA.
Брендон

61
Схоже, він купив коробку, а не пачку - hex 1250 = dec 4688, або 46,88 фунтів стерлінгів
Джон Раш

157
ботаніки: дізнайтеся марку та кількість сигарет, які курить чоловік, налагоджуючи помилковий звіт про кредитну картку;)
Стефано Борині

239

Почекайте секунду; відбувається щось рибне.

Хоча пояснення з пробілом, безумовно, здається хорошим, воно може бути (принаймні частково) навмисним.

ВІЗА зазначила, що "снігу" за допомогою попередньо оплачених карток Visa Buxx постраждало "менше 13 000" клієнтів. Я знайшов новини на кількох поки що. Джош Мушинський у Нью-Гемпширі, Джейсон Брайан у Теннесі, Рон Сіл у Техасі, син-підліток Карен Тейлор у Бетелі та дівчинка-підліток Елізабет Льюїс у Оватоні.

Вся справа в тому, що всі вони мають точно однакову плату : $ 23,148,855,308,184,500,00. Якщо проблема полягала у пробілці, то як же всі вони мали точно такий же заряд $ 0x1250 ($ 46,88)? Двоє з них придбали сигарети на автозаправних станціях, ще дві заплатили в ресторанах, Льюїс придбав яйця та молоко, остання - в аптеці. Чи всі ці різноманітні предмети коштують однаково? $ 46,88 за рахунок ресторану здається нормальним, але за пачку сигарет? для молока та яєць‽

Помилка пробілу пробілу має сенс, за винятком того, що вона не враховує константу 0x1250. Чому в останньому слові всі вони закінчились 0x2020 2020 2020 1250замість 0x2020 2020 2020 2020чи різних цифр?

Гммм, якщо тільки 13000 клієнтів постраждали, може бути, що якимось чином саме цей, конкретний заряд викликав помилку. У цьому випадку це більше, ніж просто помилка поля. Якщо це просто текстове поле інтерпретується як 64-бітове ціле число, то чому б інші суми не викликали це, таким чином впливаючи на всіх, а не лише на <13000. І все-таки, як так, що за той же тиждень 13 000 людей могли просто стягнути таку ж суму?

Вони кажуть, що це "тимчасова помилка програмування", і це може бути, але це може бути хакерською річчю? У такому випадку це, мабуть, було б магічне число. Насправді це може бути комбінація обох: якийсь хакер, який виставляє автоматичну зарядку 0x1250, поєднується з помилкою пробілу, викликаючи виявлення однієї або обох помилок.

Регістр думає , що відповідь дійсно помилка прокладеного поля, але не розширюється, чому вони все-таки, хоча один з коментарів згадує число , можливо , округляється до найближчого $ 100 (малоймовірно , тому що банки і банківської програмне забезпечення явно йде до довжин, щоб забезпечити точність).

(Також є звіт про подібну, попередню помилку.)


Рахунок Джейсона Брайана:

Рахунок Джейсона Брайана

Рахунок Елізабет Льюїс:

Рахунок Елізабет Льюїс

Рахунок Рона Сіла:

Рахунок Рона Сіла

Рахунок Джоша Мушинського:

Рахунок Джоша Мушинського


8
Можливо, кількість шестигранників 1250 = dec 4688 є мінімальним, щоб викликати якісь додаткові методи перевірки шахрайства. Якщо вона точно дорівнює цьому, вводиться помилка в код?
PeteT

6
+1 Ви можете собі уявити, що буде, якби 13 000 клієнтів одночасно здійснили повернення коштів? : P
pageman

11
@ petebob796 насправді кожен байт обробляється окремо, тому 1250 (12 50) - це 18 та 80. 18 - це контрольна таблиця, а 80 - величина P (принаймні в ASCII). Гммм ... Ctrl + P?
WildJoe

1
$ 12,50 - відносно невеликий і круглий номер. Це зовсім не дивно, що з мільйонів транзакцій 13 000 мали саме таку суму. Але це потрібно поєднувати з якоюсь іншою логічною вадою, яка викликала перезапис.
Том,

4
12.50 невеликий і круглий, але це зовсім інше число від 0x12.50. І якщо хтось там заплатить 12,50 доларів за одну пачку сигарет, я радий, що кину.

62

Коли ви здійснюєте покупку карткою, це те, що програмне забезпечення негайно виходить в Інтернет, щоб переконатися, що у вас є достатні кошти для покупки, але лише затримаєте кошти для трансакції. Після закінчення робочого дня програмне забезпечення збирає всі транзакції, розміщені за останні 24 години, і подає їх на одержувач для опрацювання.

Подання в банк відоме як розрахунковий розрахунок, і це відбувається шляхом надсилання простого текстового файлу у дуже жорсткому форматі. (Це все було розроблено десятиліттями тому, і кількість систем, які зараз його використовують, ускладнює модернізацію)

Кожна транзакція відображається у файлі у вигляді рядка тексту, а частина цього - значення транзакції. Це поле має містити 11 числових символів (з лівої сторони пробитий нуль) і завжди буде містити значення в найнижчому загальному знаменнику (у цьому випадку - центах). 11 числових символів добре задовольняють значення в будь-якій валюті.

Схоже, процесор оплати в цьому випадку вніс деякі зміни в програмне забезпечення для подання заявок і помилково замінив нульове прокладку на пробіл. Дізнайтеся, як це отримало: a) постачальник послуг, b) придбання банку та c) Visa, не взявшись до мене, рятується від мене. Чисте значення цього розрахункового файлу (13 000 транзакцій з високою вартістю) було б астрономічним, і, можливо, це також було десь сприяючим фактором.


15
"11 числових символів добре задовольняє значення в будь-якій валюті." - що з зімбабвійськими доларами?
quant_dev

6
Хто платить VISA в Зімбабве? (^_^)
ЯегДвайт

Це хороший коментар. Але якщо це був програмний збій, то немає доказів того, що: а) постачальник послуг, б) придбання банку та в) Віза все це бачила. Це могло виникнути в будь-який момент.
Ісаак Любов

20

Якщо ви видалите кінцевий нуль, він підтверджується як номер карти VISA. Я здогадуюсь, що вони перевели карту, а потім вручну ввели номер, думаючи, що проведенне не вдалося.


9
lol - Ми щойно опублікували номер його картки Visa? .. Як його звали знову?
ian_scho

4
ps ЦЕ є найімовірнішою відповіддю, 200+ оновлень за першу відповідь - вундуки :) Щороку відбувається близько 50+ мільярдів транзакцій з візою.
ian_scho

14
Ні, це була помилка, а не помилка використання. Близько 13000 клієнтів постраждали від цієї помилки.
Гуффа

8
Яка ймовірність того, що перші шість байтів будуть пробілами за випадковим випадком?
Роберт Харві

1
Навряд чи .. було декілька транзакцій з різними клієнтами, всі залучали точно таку ж суму!
Родді

10

Кінцева таємниця все ще є, звідки береться 12 50. Вони являють собою ASCII-коди для Ctrl + R, P. Що, як правило, є секретними натисканнями клавіш, які потрібно ввести для введення коду перевірки для QuickBooks.

Посилання: Де ввести код перевірки

Досить збіг обставин. Цікаво, що станеться, коли ви вводите ці клавіші в неправильному місці ...


7

Якщо ви змістите 64-бітне представлення ліворуч на 8 біт ліворуч (помножте на 256), ви отримаєте добре сформований номер кредитної картки та 3 порожні позиції для цього 3 безпечних додаткових номерів (усі нулі чомусь). Є лише 1 з 10 випадків, що випадкове число дає добре сформоване число CC.

5926 1069 5889 5232 000


6

Якщо ви використовуєте двійкове еквівалентне (1110101110110100) декодування числа 23148855308184500, ви отримаєте K 鑛, що є символом мандарина для видобутку та руди. Kmine може означати "шахта знань", або щось на кшталт kmine Holdings Ltd. Можливо, існує кореляція між K (шахта або руда) та Банком Америки чи Visa?


56
Я думаю, що все набагато глибше, ніж це. Якщо ви помножите це число на висоту Піраміди Хуфу, а потім помножите кожне третє число до 2012 року, ви отримаєте рівно 1/666 довжини до Альфа Кентавра.
серг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.