そのカード番号がどの様に計算されているかご存知でしょうか?

これはLuhnアルゴリズムという仕組みが使われており、
今はパブリックドメインです。
IBMの科学者 Hans Peter Luhn氏が考案したアルゴリズムです。

色々と問題点がありますが、実用的ということで新しくもっと強固な仕組みが開発されましたが、数の論理で1960年代からずっと使われたままです。

さて、このLuhn(ルーン)アルゴリズムは色々なところで使われているチェックサム方式です。
チェックサムというと、エンジニアならピンとくる、あのアプリとかダウンロードしたときに、改ざんされていないかチェックする 誤り検出訂正システムですね。


では、こんな番号があったとしましょう。

4120 2345 6789 0789

今、適当に作りました(笑)

クレカの番号は最初の「4」というのがマスター、ビザ、アメックス、JCBとか色々なシステム提供会社の番号です。
AMEXの場合は桁がもう1つ多いのかな。

次の「12023」というのはカード提供社で日本でいうと信販会社の番号です。
ちなみに16桁だから分かりづらいので4桁ずつ普通のカードは分離していますが、並べて記入されてもいいのです。

次の「3456789078」があなたの口座番号です。

そして最後の9というのが「チェックデジット」と呼ばれる特殊な数字。

この16桁の番号で単純入力ミスがないかという調べる方法が使われており、間違いかどうかを検出します。

https://note.com/yeyshonan/n/n860525fd2226

自分のカードで計算してみてくださいね!

入力ミスしたときとかを検出する単純アルゴリズムです。