Является ли 23,148,855,308,184,500 магическим числом или явным шансом?
Новостные сообщения, такие как этот, указывают на то, что указанное число могло появиться как программная ошибка.
Один человек в Соединенных Штатах выскочил на свою местную заправочную станцию, чтобы купить пачку сигарет, и обнаружил, что с его карточки взимается 23 148 855 308 184 500 долларов.
Это 23 миллиарда долларов (14 миллиардов фунтов) - во много раз больше государственного долга США.*
В гексе это $523DC2E199EBB4, что на первый взгляд кажется не очень интересным.
Кто-нибудь есть какие-либо мысли о том, что ошибка программирования может вызвать это?
7 ответов
Добавьте центы к числу, и вы получите 2314885530818450000, что в шестнадцатеричном формате 2020 2020 2020 1250.
Вы видите образец? Первые шесть байтов были перезаписаны пробелами (шестнадцатеричное 20, 32 декабря).
Держать на секунду; происходит что-то подозрительное
Хотя объяснение с пробелами, безусловно, кажется хорошим, оно может быть (хотя бы частично) показным.
VISA сообщила, что snafu "предоплаченные карты Visa Buxx" затронули "менее 13 000" клиентов. Я нашел новости о нескольких до сих пор. Джош Мушински в Нью-Гемпшире, Джейсон Брайан в Теннесси, Рон Сил в Техасе, сын-подросток Карен Тейлор в Вефиле и девочка-подросток Элизабет Льюис в Оватонне.
Дело в том, что все они имеют одинаковую плату: 23 148855 308 184 500,00 долларов. Если проблема заключалась в пробелах, то как получилось, что все они имели одинаковый заряд в размере 0x1250 долларов (46,88 доллара США)? Двое из них купили сигареты на заправках, еще двое заплатили в ресторанах, Льюис купил яйца и молоко, последний в аптеке. Все эти разные вещи стоят одинаково? 46,88 долларов за счет в ресторане кажется нормальным, но за пачку сигарет? для молока и яиц‽
Ошибка заполнения пробелом имеет смысл, за исключением того, что она не учитывает константу 0x1250. Почему все они в конечном итоге 0x2020 2020 2020 1250
вместо 0x2020 2020 2020 2020
или разные цифры в последнем СЛОВЕ?
Хм, если бы затронуло только 13 000 клиентов, возможно, именно эта точная, специфическая плата вызвала ошибку. В этом случае это больше, чем просто ошибка поля. Если это было просто текстовое поле, интерпретируемое как 64-разрядное целое число, то почему другие суммы не вызвали его, влияя таким образом на всех, а не только на <13 000? Тем не менее, как могло случиться, что 13 000 человек могли взять такую же сумму за ту же неделю?
Они говорят, что это "временная ошибка программирования", и вполне может быть, но может ли это быть взломом? В этом случае, вероятно, это будет магическое число. Фактически, это может быть комбинация обоих: некоторые хакеры помещают автоматический заряд 0x1250, который был объединен с ошибкой пробела, вызывая обнаружение одной или обеих ошибок.
Регистр считает, что ответ действительно является ошибкой в виде дополненного поля, но не раскрывает, почему они все одинаковы, хотя в одном из комментариев упоминается, что число может быть округлено до ближайших 100 долларов (маловероятно, поскольку банки и банковское программное обеспечение явно идут длины, чтобы обеспечить точность).
(Есть также сообщение о подобной, более ранней ошибке.)
Счет Джейсона Брайанта:
Счет Элизабет Льюис:
Счет Рона Сила:
Законопроект Джоша Мушинского:
Когда вы совершаете покупку с помощью карты, происходит следующее: программное обеспечение немедленно подключается к Интернету, чтобы убедиться, что у вас достаточно средств для покупки, но удерживает только средства для транзакции. В конце рабочего дня программное обеспечение собирает все транзакции, размещенные за последние 24 часа, и передает их в банк-эквайер для обработки.
Представление в банк называется расчетным, и это делается путем отправки простого текстового файла в очень жестком формате. (Все это было разработано несколько десятилетий назад, и количество систем, использующих его в настоящее время, затрудняет модернизацию)
Каждая транзакция появляется в файле в виде строки текста, и часть этого является значением транзакции. Это поле должно состоять из 11 числовых символов (заполненных нулями с левой стороны) и всегда будет содержать значение в наименьшем общем знаменателе (в данном случае в центах). 11 числовых символов хорошо подходят для значений в любой валюте.
Похоже, что обработчик платежей в этом случае внес некоторые изменения в свое программное обеспечение представления и ошибочно заменил заполнение нулями пробелом. Как это получается у а) провайдера услуг, б) банка-эквайера и в) без визы меня ускользает. Чистая стоимость этого расчетного файла (13 000 транзакций с высокой стоимостью) была бы астрономической, и, возможно, это также способствовало чему-то.
Если вы удалите конечный ноль, это будет считаться номером карты VISA. Я предполагаю, что они сильно ударили карту, а затем вручную набрали номер, думая, что смахивание не удалось.
Главная загадка - все еще, откуда исходит 12 50. Это коды ASCII для Ctrl+R, P. Это секретные нажатия клавиш, которые вы должны ввести, чтобы ввести код подтверждения для QuickBooks.
Ссылка: где ввести код проверки
Совпадение Интересно, что происходит, когда вы вводите эти ключи не в том месте...
Если вы сдвинете влево 64-битное представление на 8 бит влево (умножьте на 256), вы получите правильно сформированный номер кредитной карты и 3 пустые позиции для этого 3 безопасных дополнительных номера (все нули по какой-то причине). Существует только 1 из 10 шансов, что случайное число дает правильно сформированный номер CC.
5926 1069 5889 5232 000
Если вы используете бинарный декодер (1110101110110100) с номером 23148855308184500, вы получите K鑛, символ мандарина для добычи полезных ископаемых и руды. Kmine может означать "знание мое" или что-то вроде kmine Holdings Ltd. Возможно, существует связь между K(рудник или руда) и Банком Америки или Visa?