Luhnアルゴリズムチェッカー
Luhnはチェックデジットのみを検証し、カードが有効かどうかは確認しません。
Luhnアルゴリズム(ISO/IEC 7812-1)は、クレジットカード番号、IMEI端末識別番号、カナダのSIN、米国のNPIなど、さまざまな採番方式を1桁の入力ミスから保護するチェックサムです。数字列を貼り付けると(スペースとハイフンは無視されます)、その番号が有効かどうかを判定し、倍加と合計の各手順を表示するので、必要に応じて手作業で確認することもできます。
Luhnチェックの計算方法
-
1
数字以外を除去する
スペース、ハイフン、ドットは削除され、0〜9の数字だけが対象になります。
-
2
右から2桁ごとに倍にする
末尾から2桁目を起点に、1つおきの桁を2倍にします。
-
3
倍にした各値の桁を合計する
倍にして14になった場合は1 + 4 = 5を加えます。これは10以上の倍加値から9を引くのと同じです。
-
4
すべての結果を合計する
倍にして桁を加算した値と、変更していない桁をすべて足し合わせます。
-
5
10で割り切れるか確認する
合計の末尾が0なら番号は有効です。そうでなければ無効です。
具体例
4539 1488 0343 6467を確認します:
| 位置(右→左) | 数字 | 倍加した? | 値 |
|---|---|---|---|
| 1 | 7 | いいえ | 7 |
| 2 | 6 | はい | 12 → 3 |
| 3 | 4 | いいえ | 4 |
| 4 | 6 | はい | 12 → 3 |
| 5 | 3 | いいえ | 3 |
| 6 | 4 | はい | 8 |
| 7 | 3 | いいえ | 3 |
| 8 | 0 | はい | 0 |
| 9 | 8 | いいえ | 8 |
| 10 | 8 | はい | 16 → 7 |
| 11 | 4 | いいえ | 4 |
| 12 | 1 | はい | 2 |
| 13 | 9 | いいえ | 9 |
| 14 | 3 | はい | 6 |
| 15 | 5 | いいえ | 5 |
| 16 | 4 | はい | 8 |
合計:80。80 mod 10 = 0 → 有効。
Luhnが使われる場面
| システム | 桁数 | Luhnで保護? |
|---|---|---|
| Visa、Mastercard、Discover | 13〜19桁 | はい |
| American Express | 15桁 | はい |
| IMEI(GSM端末ID) | 15桁 | はい |
| カナダの社会保険番号(SIN) | 9桁 | はい |
| 米国の国家医療提供者識別番号(NPI) | 10桁 | はい |
| イスラエルのID(Teudat Zehut) | 9桁 | はい |
| ISBN-13 | 13桁 | いいえ(重み1と3のmod 10を使用) |
Luhnが検出できるもの・見落とすもの
- 検出できるもの: すべての1桁の誤り、および隣接する桁の入れ替えの大半(ただし全部ではない)。
- 見落とすもの: 09 ↔ 90の入れ替えや、これに似たいくつかの組み合わせ。これはセキュリティチェックではなく、入力ミスのチェックです。
- セキュリティ機能ではありません。 Luhnに適合する番号は簡単に生成できます。決済ゲートウェイでのPAN検証には、発行会社の番号範囲、CVV、AVS、3-D Secureが使われ、Luhnだけではありません。
よくある質問
いいえ。Luhnは番号が数学的に正しく構成されているかを確認するだけです。そのカードが発行済みか、残高があるか、盗難されていないかについては何も分かりません。実際の検証は認証時に発行会社で行われます。
はい。最後の桁はチェックディジットで、合計が10で割り切れるように常に選べます。IMEIジェネレーターやテスト用カード番号はこの仕組みで動作します。
すべての1桁の置換と、隣接する桁の入れ替えの大半を検出しますが、一部の組み合わせ(例:09 ↔ 90)ではチェックサムが変わりません。より堅牢な方式(ISBN-13、Verhoeff、Damm)は、複雑さと引き換えにより広い誤り検出範囲を実現します。
チェッカーは完全にブラウザ内で動作するため、何も送信されません。ただし、必要のない場所に実際のPANデータを貼り付けるのは良くない習慣です。試すときはテスト番号(例:4242 4242 4242 4242)を使いましょう。
Luhnは任意の長さで機能しますが、特定の方式向けに標準化されています(通常は9〜19桁)。このチェッカーは桁数に上限を設けていません。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
JavaScript圧縮ツール
変数名のリネーム、空白の削除、デッドコードの除去、定数畳み込みでJavaScriptを圧縮し、より小さなバンドルを作成します。
EditorConfig ジェネレーター
インデントのスタイルとサイズ、改行コード、文字コード、空白ルールを指定して .editorconfig ファイルを生成し、IDE やエディタをまたいで書式を統一できます。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
このツールは他の言語でも利用できます
- Luhn-Algorithmus-Prüfer [DE]
- Vérificateur d'algorithme de Luhn [FR]
- Luhn-algoritmens kontrollverktyg [SV]
- Luhn 알고리즘 검사기 [KO]
- Luhn-algoritme-checker [NL]
- أداة فحص خوارزمية Luhn [AR]
- Verificador del Algoritmo de Luhn [ES]
- Pemeriksa Algoritma Luhn [ID]
- เครื่องตรวจสอบอัลกอริทึมของ Luhn [TH]
- Trình kiểm tra thuật toán Luhn [VI]
- Walidator algorytmu Luhna [PL]
- Validador do Algoritmo de Luhn [PT]
- Luhn Algoritma Kontrolcüsü [TR]
- Luhn 算法校验工具 [ZH]
- Luhn Algorithm Checker [EN]
- Controllore dell'Algoritmo di Luhn [IT]
- Проверка по алгоритму Луна [RU]