変換

Luhnアルゴリズム チェックデジット検証・生成

クレジットカード番号やIMEIなどで使われるLuhnアルゴリズム (mod10) のチェックデジットを検証・計算します。処理はブラウザ内で完結します。

実在の人物のクレジットカード番号は入力しないでください。確認用のテスト番号 (例: 4111111111111111) での利用を想定しています。

-

使い方

  1. 数字の列を入力します。クレジットカード番号を手入力した際の打ち間違い確認や、IMEI (端末識別番号) のような Luhn アルゴリズム採用番号の検証に使えます。ハイフンや空白は自動的に無視されます。
  2. 上段の結果は、入力した数字の末尾をチェックデジットとみなして全体を検証した結果です。カード番号などの全桁 (チェックデジットを含む桁数) を入力したときに使います。
  3. 下段の結果は、入力した数字にチェックデジットがまだ付いていないと仮定し、末尾に付加すべき正しい1桁を計算した結果です。チェックデジットを除いた桁数を入力したときに使います。実在のカード番号は入力せず、確認用のテスト番号で動作を試してください。

計算の根拠

Luhn アルゴリズム (mod10 アルゴリズム) は、IBM の研究者であった Hans Peter Luhn が考案し、1960年に米国特許として登録されたチェックデジット計算方式です (US Patent 2,950,048 “Computer for Verifying Numbers”、米国特許商標庁)。計算手順は次のとおりです。(1) チェックデジットを含む数字列の右端から数えて偶数番目 (右から2桁目・4桁目…) の数字を2倍にする。(2) 2倍にした結果が10以上になった場合は9を引く (各桁の数字を合計するのと同じ結果になります)。(3) すべての桁の数字 (2倍にした桁も含む) を合計する。(4) 合計が10の倍数であれば正しい数字列、そうでなければ誤りです。チェックデジットを新たに付加する場合は、末尾に仮の0を置いて同じ手順で合計し、「10から (合計を10で割った余り) を引いた値」(余りが0ならそのまま0) がチェックデジットになります。

この方式は現在も広く実用されており、Visa・Mastercard など多くのクレジットカード番号の最終桁 (国際標準 ISO/IEC 7812-1 が定める本人確認カードの番号体系の一部) や、携帯端末を一意に識別する IMEI (International Mobile Equipment Identity) の最終桁 (第3世代パートナーシップ・プロジェクトの仕様書 3GPP TS 23.003 第6.2節に Luhn チェックデジットとして明記) に採用されています。隣接する2桁の入れ替えや1桁の単純な誤記のほとんどを検出できるため、紙や電話口で読み上げた番号の入力ミスをその場で確認する用途に向いています。

よくある用途

場面 使い方
クレジットカード決済システムのテスト 実在しないテスト用カード番号 (例: 4111111111111111) が Luhn チェックに合格するかを確認する
IMEI の手入力チェック 中古端末などで手入力した15桁のIMEIの末尾1桁が正しいかを確認する
自作の会員番号・注文番号への応用 JANコード (related) と同じ「チェックデジットで誤記を検出する」考え方を、独自の番号体系に応用する際の計算練習

入力した数字はサーバーに送信されず、このページを閉じると消えます。

関連ツール

公開: 2026-10-30