web-dev-qa-db-ja.com

それが処理する前に、ウェブサイトは私のクレジットカードが間違っていたことをどのようにして知ることができましたか?

私は自分のcc番号を入力し、16桁の入力が完了するとすぐに赤で強調表示しました。よく見て、1桁が間違っていることに気付きました。直して、真っ黒になりました。ウェブサイトはそれが間違っていることをどのようにして知りましたか?

23
larry909

クレジットカード番号は、チェックサムを計算することで確認できます。

作成されたすべてのクレジットカード番号には、アルゴリズムに従って番号が割り当てられます。

Ross Millikan :チェックサムは最後の桁を指定するため、残りの桁は15桁です。つまり、利用可能な10 ^ 15の数があることを意味しますが、他の制限があります。最初の数字はカードの種類(4 = Visa、5 = MasterCardなど)で、次の数字は発行者に関係しています。

その後、このクレジットカード番号がアルゴリズムに準拠していない場合、チェックサムは正しくないため、番号は無効である必要があります。

アルゴリズムは「Luhnアルゴリズム」と呼ばれます。詳細については、これをチェックしてください Wikipage

TripeHound: 注:指定された番号がチェックに失敗した場合、それは間違いなく実際のCC番号ではありません。ただし、チェックに合格した場合は、それが潜在的なCC番号であることを証明するだけであり、実際に発行されたことを証明しません。検証の次の段階(カードプロセッサとの通信)でそれを検証する必要があります。同様のチェックを 英国のソートコード/口座番号のペア (およびおそらく他の国でも同様のもの)および 国際銀行の口座番号(IBAN) に対して行うことができます。

編集:回答へのコメントに記載されている情報の一部を追加しました。喜んで行き、彼らに賛成票を与えてください、その素晴らしい情報。

50
Jens Krüger

Mostクレジットカードプロバイダーは、クレジットカード番号にチェックサムの形式を使用します。通常は Luhn Algorithm です。 Luhnアルゴリズムの検証は、数値に対してそれを実行し、結果として0を取得するのと同じくらい簡単です。別の結果が得られた場合、チェックサムは失敗します。

ウィキペディアの ペイメントカード番号 ページで、クレジットカード番号の発行者はプレフィックスと桁数で認識でき、現在のところ単一の発行者(Diners Club enRoute)は使用しないことがわかります。ルーンチェック。

ユーザーに迅速なフィードバックを提供し、処理コストを削減するために、入力を検証するときはできるだけ早くLuhn Checkを使用するのが慣例です。


このアルゴリズムは、Wikipediaの記事にあるように、他の多くのタイプの数値で使用されています。これは、さまざまなタイプミスや送信エラーから保護するためのかなり簡単な方法です。ただし、これは絶対に確実なことではなく、特に、2つの連続する数字の順序を逆にするなどの特定の簡単な間違いは検出されません。

0
Matthieu M.