Luhnアルゴリズム計算機
多くのカード番号や識別番号で使われるLuhn Mod 10チェックサムで数字列を検証します。
番号を検証
末尾のチェックディジットを含め、数字だけを入力してください。
Luhnアルゴリズムについて
Luhnアルゴリズムは、数字列によくある誤りを検出する簡単なチェックサムの計算式です。有効な数字列では変換後の合計が十で割り切れるため、Mod 10アルゴリズムとも呼ばれます。最も知られている用途はクレジットカード番号ですが、IMEI端末識別番号、国の個人識別制度、会員番号などの構造化されたコードにも使われます。この計算機は数学的な整合性だけを調べ、発行元への照会や口座の存在確認は行いません。
検証は右端の数字から始まり、これをチェックディジットとして扱います。右から左へ進み、二桁おきに数字を二倍します。二倍した値が九を超えたら九を引きます。これは二倍した結果の二桁を足すのと同じです。交互に並ぶ残りの桁は変更しません。変換後のすべての値を足し、合計を十で割った余りがゼロなら、番号全体がLuhn検証を通過します。
たとえば一桁を変更すると、通常はチェックサムの余りが変わり、数字列が無効になります。また、隣り合う数字の入れ替えの大半も検出でき、多くの入力ミスを捉えられます。ただし、暗号学的ハッシュではありません。異なる誤った数字列が同じ余りになる場合もあり、誰でも意図的に有効なチェックディジットを作れます。そのためLuhn検証は初期のデータ品質確認として使い、身元、権限、真正性、利用可能残高の証明には使わないでください。
数字の処理はブラウザー内で行われます。既存の末尾チェックディジットを含む番号全体を入力し、「番号を検証」を選んでください。変換後の合計が十で割り切れるかどうかと余りが表示されます。余りが一から九なら、番号はチェックサムの条件を満たしません。掲載例は公開されたテスト用の数字列であり、実際の口座情報ではありません。
架空のテスト番号で済む場合は、機密性の高い実際の金融情報をツールに入力しないでください。この実装はネットワーク照会を行いませんが、口座識別子の露出を最小限にすることが適切な安全対策です。開発者はフォーム検証のテストに、サポート担当者は機密情報を伏せた例による転記ミスの調査に、学生は加重チェックサムの計算学習に利用できます。検証を通過しても、Luhnの式に適合することだけが示されます。その後に適切で安全な業務上の検証が必要です。
Luhnアルゴリズムの例
| 番号 | 結果 | 説明 |
|---|---|---|
| 4532015112830366 | 有効 | 変換後の各桁の合計の余りはゼロです。 |
| 4532015112830367 | 無効 | 末尾の数字を変えるとチェックサムの余りが一になります。 |
| 79927398713 | 有効 | この代表的な例の数字列はMod 10を満たします。 |
| 79927398714 | 無効 | 変更後のチェックディジットではチェックサムが成立しません。 |
Luhnで番号を検証する方法
- 末尾のチェックディジットを含む数字列全体を入力します。
- 空白や記号がなく、数字だけであることを確認します。
- 「番号を検証」を選び、右側から交互の桁を二倍する処理を実行します。
- 有効性のメッセージとチェックサムの余りを確認します。
Luhnアルゴリズムのよくある質問
Luhnで有効と判定されると何が証明されますか?
数字列がMod 10チェックサムを満たすことだけです。口座の存在、有効な状態、所有者は証明されません。
チェックディジットはどの桁ですか?
Luhnで保護された完全な数字列では、通常は右端の桁です。この検証ツールではその桁も含めてください。
Luhnアルゴリズムはどんな誤りを検出できますか?
一桁の置き換えはすべて、隣接する数字の入れ替えは大半を検出できます。複数桁の変更をすべて検出できるわけではありません。
Luhnはセキュリティや暗号化のアルゴリズムですか?
いいえ。公開された誤り検出の式であり、秘匿性や認証機能はありません。安全なシステムでは、別途権限確認や発行元照会が必要です。
空白やハイフンのある番号も検証できますか?
入力内容を曖昧にしないため、この計算機は意図的に数字のみを受け付けます。検証前に書式用の文字を除去してください。