開発者ツール
クレジットカード番号バリデーター|Luhnアルゴリズム・ブランド判定
クレジットカード番号を入力するとLuhnアルゴリズムでチェックデジットを検証し、Visa・Mastercard・Amex等のブランドを自動判定します。フォームのバリデーション実装確認にも便利です。
[[ labels.client_side_note ]]
[[ labels.result_label ]]
| [[ labels.formatted_label ]] | [[ result.formatted ]] |
|---|---|
| [[ labels.brand_label ]] | [[ brandName ]] [[ labels.brand_unknown ]] |
| [[ labels.checksum_label ]] | ✓ [[ labels.checksum_valid ]] ✗ [[ labels.checksum_invalid ]] |
対応ブランドと判定条件(IIN・桁数)
| ブランド | 先頭の数字(IIN) | 桁数 |
|---|---|---|
| Visa | 4 | 13, 16, 19 |
| Mastercard | 51–55, 2221–2720 | 16 |
| American Express | 34, 37 | 15 |
| Discover | 6011, 65 | 16 |
| JCB | 3528–3589 | 16 |
| Diners Club | 300–305, 36, 38 | 14 |
| UnionPay | 62 | 16–19 |
使い方のヒント
- 実在するカード番号ではなく、サンプルボタンのテスト番号(Visa: 4111 1111 1111 1111 など)で動作を確認できます。
- スペースやハイフンが含まれていても自動で除去して判定するため、コピー&ペーストした番号もそのまま入力できます。
- 本ツールの判定はLuhnアルゴリズムによる書式チェックのみです。実際の与信確認・残高照会は決済代行会社のAPIで行ってください。
- フォームバリデーションの実装時に、正常系(有効な番号)・異常系(無効な番号)の両方をこのツールで作って確認すると効率的です。
よくある質問
余談ですが ― チェックデジットの父、Hans Peter Luhn
クレジットカード番号の末尾に埋め込まれた「チェックデジット」は、1954年にIBMのエンジニアであるHans Peter Luhn(ハンス・ピーター・ルーン)が考案したアルゴリズムで検証されています。彼はこの功績で1960年に特許を取得しましたが、現在は特許が失効し誰でも自由に利用できる公開アルゴリズムとなっています。
Luhnアルゴリズムの仕組みは意外にシンプルです。カード番号の右端から1桁おきに数字を2倍し、その結果が2桁になる場合は各桁を足し合わせます(例: 8×2=16 → 1+6=7)。すべての桁を合計した数値が10で割り切れれば、そのカード番号は書式として有効と判定されます。
このアルゴリズムはクレジットカードだけでなく、IMEI番号(スマートフォンの識別番号)やカナダの社会保険番号など、さまざまな識別番号のタイプミス検出にも応用されています。ただし注意点として、Luhnアルゴリズムはあくまで「打ち間違いを検出する」ためのものであり、そのカード番号が実在するか、残高があるかどうかを判定するものではありません。
カード番号の先頭6〜8桁は「IIN(発行者識別番号)」と呼ばれ、どの国際ブランド・どの発行銀行が発行したカードかを識別する情報が埋め込まれています。本ツールのブランド判定機能も、このIINの範囲パターンをもとに動作しています。