23.148.855.308.184.500 é um número mágico ou pura chance?

556

Notícias como esta indicam que o número acima pode ter surgido como um erro de programação.

Um homem nos Estados Unidos apareceu no posto de gasolina local para comprar um maço de cigarros - apenas para descobrir que seu cartão era cobrado US $ 23.148.855.308.184.500.

Isso equivale a US $ 23 quadrilhões (£ 14 quadrilhões) - muitas vezes a dívida nacional dos EUA. *

Em hexadecimal, é $ 523DC2E199EBB4, o que não parece muito interessante à primeira vista.

Alguém tem alguma opinião sobre qual erro de programação teria causado isso?

Roddy
fonte
31
atendente de posto de gasolina entediado?
txwikinger
217
Bem Obama disse que ele tinha um novo plano de estímulo nos trabalhos para aliviar o déficit ...
Christopher Klein
25
Exatamente que tipo de cartão de crédito esse cara tem que a transação passou e provocou meros US $ 15 em taxas de cheque especial ... O posto de gasolina também provavelmente está descontente com a taxa de processamento de cartão de crédito de 2%.
22612 Nick Bastin
42
Ovo de Páscoa de um programador que está prestes a ser demitido;)
Matthew Whited
28
Talvez seja algum tipo de nova campanha anti-tabagismo. ("Veja quanto custa realmente fumar!" :-)
Slapout 16/07/2009

Respostas:

1447

Adicione os centavos ao número e você obterá 2314885530818450000, que em hexadecimal é 2020 2020 2020 1250.

Você vê o padrão? Os seis primeiros bytes foram substituídos por espaços (hex 20, dez 32).

Guffa
fonte
56
Mais uma vez provando que o espaço em branco não é inócuo.
Eric
547
se isto é verdade, você acaba de ganhar um prémio de "melhor depuração do ano" :)
Stefano Borini
82
VISA pode precisar dele mais do que a NASA.
Brandon
61
Parece que ele comprou uma caixa, não um pacote - hex 1250 = dezembro 4688, ou £ 46,88
John Rasch
157
nerds: descobrir marca e quantidade de cigarros por homem fuma por depuração seu relatório de cartão de crédito errado;)
Stefano Borini
239

Espere um segundo; há algo suspeito acontecendo.

Embora a explicação preenchida pelo espaço certamente pareça boa, pode ser (pelo menos em parte) ilusória.

A VISA disse que havia "menos de 13.000" clientes afetados pelo snafu com os cartões pré-pagos Visa Buxx. Encontrei notícias em vários até agora. Josh Muszynski em New Hampshire, Jason Bryan no Tennessee, Ron Seale no Texas, filho adolescente de Karen Taylor em Bethel e uma adolescente Elizabeth Lewis em Owatonna.

O fato é que todos eles têm exatamente a mesma taxa : US $ 23.148.855.308.184.500,00. Se o problema era o preenchimento de espaço, como é que todos eles tinham exatamente a mesma taxa de US $ 0x1250 (US $ 46,88)? Dois deles compraram cigarros em postos de gasolina, outros dois pagaram em restaurantes, Lewis comprou ovos e leite, o último em uma farmácia. Todos esses itens variados custam o mesmo? 46,88 dólares por uma conta de restaurante parece bom, mas por um maço de cigarros? para leite e ovos‽

O erro de preenchimento de espaço faz sentido, exceto que ele não considera a constante 0x1250. Por que todos eles terminaram com em 0x2020 2020 2020 1250vez de 0x2020 2020 2020 2020ou com números diferentes na última PALAVRA?

Hmmm, se apenas 13.000 clientes foram afetados, pode ser que, de alguma forma, essa cobrança exata e exata tenha acionado o erro. Nesse caso, é mais do que apenas um erro de campo. Se foi apenas o campo de texto que está sendo interpretado como um número inteiro de 64 bits, por que outras quantidades não o causaram, afetando todo mundo, e não apenas <13.000. Ainda assim, como é que 13.000 pessoas poderiam ter cobrado exatamente o mesmo valor na mesma semana?

Eles dizem que é um "erro temporário de programação", e pode muito bem ser, mas poderia ser algo de hackers? Nesse caso, provavelmente seria um número mágico. De fato, pode ser uma combinação de ambos: algum hacker que cobra uma taxa automática de 0x1250, que foi combinada com o erro de preenchimento de espaço, fazendo com que um ou ambos os erros sejam detectados.

O Register acha que a resposta é realmente o erro do campo preenchido, mas não expande o motivo pelo qual eles são todos iguais, embora um dos comentários mencione o número possivelmente sendo arredondado para os US $ 100 mais próximos (improvável, pois os bancos e o software bancário explicitamente vão comprimentos para garantir precisão).

(Também há um relatório de um erro semelhante anterior).


Projeto de lei de Jason Bryant:

A conta de Jason Bryant

Projeto de lei de Elizabeth Lewis:

A conta de Elizabeth Lewis

A conta de Ron Seale:

A conta de Ron Seale

Projeto de lei de Josh Muszynski:

A conta de Josh Muszynski

Synetech
fonte
8
Possivelmente, o número hexadecimal 1250 = dec 4688 é o mínimo para causar algum tipo de método extra de verificação de fraude. Se é exatamente igual a isso, um bug no código é introduzido?
Petet
6
+1, você pode imaginar o que aconteceria se os 13.000 clientes fizessem um estorno ao mesmo tempo? : P
pageman 9/08/09
11
@ petebob796 na verdade, cada byte é tratado separadamente, então 1250 (12 50) é 18 e 80. 18 é um caractere de controle e 80 é P maiúsculo (pelo menos em ASCII). Hummm ... Ctrl + P?
WildJoe
1
$ 12,50 é um número relativamente pequeno e redondo. Não é de surpreender que das milhões de transações 13.000 tivessem essa quantia exata. Mas ele precisa ser combinado com alguma outra falha lógica que acionou a substituição.
Tom A
4
12,50 é pequeno e redondo, mas é um número completamente diferente de 0x12,50. E se houver alguém pagando US $ 12,50 por um maço de cigarros, fico feliz por ter desistido.
62

O que acontece quando você faz uma compra com cartão é que o software fica on-line imediatamente para garantir que você tenha fundos suficientes para a compra, mas apenas retém os fundos da transação. No final do dia útil, o software reúne todas as transações realizadas nas últimas 24 horas e as envia ao banco adquirente para processamento.

A submissão ao banco é conhecida como liquidação e é feita enviando um arquivo de texto sem formatação em um formato muito rígido. (Tudo isso foi desenvolvido décadas atrás e o número de sistemas atualmente em uso dificulta a modernização)

Cada transação aparece no arquivo como uma linha de texto e parte disso é o valor da transação. Este campo deve ter 11 caracteres numéricos (preenchido com zero no lado esquerdo) e sempre manterá o valor no menor denominador comum (neste caso, centavos). 11 caracteres numéricos atendem bem a valores em qualquer moeda.

Parece que o processador de pagamento nesse caso fez algumas alterações no software de envio e substituiu erroneamente o preenchimento zero pelo preenchimento de espaço. Exatamente como isso foi conseguido por a) prestador de serviços, b) banco adquirente ec) visto sem ser resgatado. O valor líquido desse arquivo de liquidação (13.000 transações de alto valor) teria sido astronômico, e talvez isso também tenha sido um fator contribuinte em algum lugar.

PaulG
fonte
15
"11 caracteres numéricos atendem bem a valores em qualquer moeda." - e o dólar zimbabuense?
9_09 de quant_dev
6
Quem está pagando com a Visa no Zimbábue? (^
ЯegDwight 11/08/09
Esse é um bom comentário. Mas se houve uma falha no software, não há como provar que a) prestador de serviços, b) banco adquirente e c) a Visa tenha visto tudo isso. Poderia ter surgido a qualquer momento.
Isaac Lubow
20

Se você remover o zero à direita, ele será validado como um número de cartão VISA. Meu palpite é que eles passaram o cartão e inseriram manualmente o número, pensando que o furto havia falhado.


fonte
9
lol - Acabamos de publicar o número do cartão Visa? .. Qual era o nome dele mesmo?
Ian_scho 16/07/2009
4
ps Esta é a resposta mais provável, as mais de 200 votações para a primeira resposta são por geeks :) Existem cerca de 50 bilhões de transações de visto por ano.
Ian_scho 16/07/2009
14
Não, foi um erro, não um erro de uso. Cerca de 13.000 clientes foram afetados por esse bug.
Guffa 16/07/2009
8
Qual é a probabilidade de os primeiros seis bytes serem espaços por mero acaso?
Robert Harvey
1
Improvável .. houve várias transações com clientes diferentes, todas envolvendo exatamente a mesma quantidade!
Roddy
10

O mistério final ainda é de onde vêm 1250. Eles são os códigos ASCII para Ctrl + R, P. Quais são as teclas secretas que você deve digitar para inserir o código de validação do QuickBooks.

Link: Onde inserir o código de validação

Que coincidência. Eu me pergunto o que acontece quando você digita essas chaves no lugar errado ...

Hans Passant
fonte
7

Se você deslocar a representação esquerda de 64 bits para 8 bits restantes (multiplique por 256) Você obterá um número de cartão de crédito bem formado e 3 posições vazias para isso; 3 números extras seguros (todos os zeros por algum motivo). Há apenas 1 em 10 chances de o número aleatório fornecer um número CC bem formado.

5926 1069 5889 5232 000


fonte
6

Se você usar a decodificação equivalente binária (1110101110110100) do número 23148855308184500, obterá K 鑛, que é o caractere mandarim para mineração e minério. Kmine pode significar "mina de conhecimento" ou algo como kmine Holdings Ltd. Talvez haja uma correlação entre K (mina ou minério) e o Bank of America ou Visa?


fonte
56
Eu acho que tudo é muito mais profundo que isso. Se você multiplicar esse número pela altura da Pirâmide de Khufu e depois multiplicar cada terceiro número até 2012, receberá exatamente 1/666 de comprimento no Alpha Centauri.
serg