チェックディジットとは|Luhnとバーコードの計算を検算で理解
公開日:2026年10月16日 更新日:2026年9月15日 運営:シルギア(アナライズギア株式会社) 対象ツール:チェックディジット計算(Luhn・バーコード)
クレジットカードや商品バーコードの番号には、末尾に「チェックディジット(検査数字)」と呼ばれる1桁が付いています。これは番号を打ち間違えたときにその場で気づくための検算用の数字です。この記事では、代表的なLuhnアルゴリズムとバーコードのEAN-13/JANを取り上げ、なぜその計算で誤りを見つけられるのかを、実際の数字を検算しながら解説します。
チェックディジット(検査数字)とは何か
チェックディジットは、それ以外の桁から決められた計算式で導き出し、番号の末尾に添える1桁の数字です。番号を受け取った側は同じ式でもう一度計算し、末尾の数字と一致するかを確かめます。一致しなければ「どこかを打ち間違えている」と判断できるわけです。カード番号、バーコード、会員番号、IMEI(携帯端末の識別番号)など、人が読み取ったり手入力したりする番号で広く使われています。
大切なのは、チェックディジットが「番号の形式が正しいか」を確かめる仕組みであって、その番号が実在するか、有効かまでは保証しないという点です。カード番号なら残高や名義の正しさは分かりませんし、バーコードなら実在する商品かどうかも別問題です。あくまで入力ミスを早期に発見するための、軽い検算の役割だと考えてください。
Luhnアルゴリズムの手順
Luhnアルゴリズム(モジュラス10)は、クレジットカード番号やIMEIなどで使われる代表的な方式です。手順は次の通りです。
- チェックディジットの1つ左の桁から数えて、1つおきに桁を2倍する。
- 2倍した結果が9を超えたら、そこから9を引く(16なら7、18なら9になる。これは各位の数字を足すのと同じ)。
- 2倍しなかった残りの桁はそのまま使い、すべてを合計して総和を求める。
- 計算モードでは「総和を次の10の倍数にするために足す数字」がチェックディジット。検証モードでは総和が10で割り切れれば正しい。
2倍と9引きを組み合わせることで、1桁を打ち間違えたときに総和が必ずずれるように設計されています。だからこそ末尾との一致・不一致で誤りを検出できるのです。
Luhnの計算例を自分で検算する
「7992739871」のチェックディジットを求めてみます。右端の1から1つおきに2倍する対象は、右から1・8・3・2・9番目にあたる桁です。それぞれ2倍すると、1→2、8→16→7、3→6、2→4、9→18→9となり、これらの合計は2+7+6+4+9=28です。2倍しない桁は7・9・7・9・7で、合計は39です。総和は28+39=67になります。
67を次の10の倍数(70)にするには3を足せばよいので、チェックディジットは3です。したがって完成した番号は「79927398713」となります。検証するときは、この11桁全体で同じ計算をして総和が10で割り切れる(この例では70)ことを確かめます。本ツールでは、どの桁を2倍したか、各桁の値、合計までを一覧で表示するので、手計算の答え合わせに使えます。
EAN-13/JANの重み付けと計算例
EAN-13は13桁の商品バーコードで、日本の「JANコード」はこれと同一の規格です。先頭12桁からチェックディジットを求めます。手順は、先頭から数えて奇数番目の桁を×1、偶数番目の桁を×3して合計し、その総和を10で割った余りを10から引き、さらに10で割った余り(余りが0なら0)を13桁目とします。右端から交互に×3・×1と重み付けしても同じ結果になります。
例として先頭12桁が「400638133393」の場合を計算します。奇数番目(×1)の桁は4・0・3・1・3・9で合計20、偶数番目(×3)の桁は0・6・8・3・3・3で合計23、これを3倍して69です。総和は20+69=89。89を10で割った余りは9なので、10から9を引いて1がチェックディジットになります。完成番号は「4006381333931」です。EAN-8は先頭7桁から、UPC-A(12桁)は先頭11桁から、いずれも右端側を×3とする同じ考え方で求めます。
検出できる誤りと見逃すパターン
チェックディジットは万能ではありません。得意なのは1桁だけの打ち間違い(単一桁誤り)で、これはほぼ確実に検出できます。次に多い入力ミスである「隣り合う2桁の入れ替え」も多くの場合は検出できますが、一部のパターンはすり抜けます。
- Luhnでは「09」と「90」の入れ替えは総和が変わらず、検出できません。
- 複数の桁が同時に狂ったときは、偶然に総和が合ってしまうと見逃すことがあります。
- 番号が実在・有効かどうか、名義や残高が正しいかは一切分かりません。
それでも、手入力で最も起こりやすい単一桁誤りをその場で弾けることには大きな価値があります。完全な検査ではなく「早期発見のための軽い網」だと理解しておくとよいでしょう。
使いどころと本ツールの使い方
チェックディジットが活躍する場面は、人が番号を入力・読み取りする箇所です。クレジットカードの入力フォーム、商品バーコードの手入力、携帯端末のIMEI、各種の会員番号や整理番号などが典型例です。フォームで送信前にチェックディジットを検算すれば、明らかな打ち間違いを送信前に気づかせられます。
本ツールでは、まず方式(Luhn/EAN-13・JAN/EAN-8/UPC-A)と動作(計算か検証か)を選びます。計算ではチェックディジットを含まない数字を、検証では末尾まで含む番号全体を入力します。ハイフンや空白は自動的に取り除かれ、桁数が合わないときは注記で知らせます。計算はすべてブラウザ内で完結し、入力した数字はどこにも送信されません。とはいえ共用端末では、実在するカード番号などを入力欄に残さないよう消去してから離れるようにしてください。