ForHosting KIT · 開発者向けツール

ダムのチェックディジット

どんな数字にも1桁を足すだけで、実際によく起きる打ち間違いを捕まえます。572にはダム方式のチェックディジット4が付いて5724になり、1桁の誤りや隣り合う2桁の入れ替わりがあれば検証に失敗します。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
数字列のみ
572
結果
計算モード
Compute
入力
572
チェックディジット
4
チェックディジット付き
5724

長い口座コード、シリアル番号、会員IDを手入力する場面こそ、桁の間違いが最も潜む場所です。ダムのチェックディジットアルゴリズムは末尾に1桁を付加し、あらゆる1桁の置換とあらゆる隣接転置がチェックサムを崩すようにします。これは人が実際に犯す打ち間違いに対して、単純なmodulo-10方式より強力な保証です。どちらの経路も同じ純粋な算術を用い、ネットワークも番号の保存もありません。

ダムのアルゴリズムが弱い検査では見逃す誤りを捕捉する仕組み

チェックディジットが存在するのは、人とキーボードが予測可能な破損をもたらすからです。1つのキーの押し間違い、隣り合う2桁の入れ替わり、桁の挿入や脱落などです。決済カードで使われる古典的なLuhn規則を含め、日常的な多くの方式はほとんどの1桁誤りと多くの隣接入れ替えを捕捉しますが、いくつかの転置の組は見えないままになります。

とりわけLuhnでは09対90が該当します。H・マイケル・ダムは異なる構成を設計しました。桁は固定の10×10の完全反対称準群表を通じて左から右へ結合され、暫定値ゼロから始まります。

代数的性質により、いずれか1桁を変更しても、隣接する2桁を入れ替えても、最終の暫定値をゼロのままにはできないことが保証されます。これが、口座番号、倉庫のSKU、患者やチケットのID、そして1つの打ち間違いが作業を誤ったレコードへ回してしまうあらゆる固定長コードにとっての実用上の利点です。

このツールはその標準表と標準の左から右への走査を実装しており、独自の亜種を作り出すことはありません。出力は常にアルゴリズムをdammと明示するため、下流のシステムはどの方式が値を保護したかを記録できます。バーコード系のチェックディジット(EAN、UPC、ISBN)と比べて、ダムは小売のGTINレイアウトに縛られません。

ダムのチェックディジットが実システムに合う場面

会員やロイヤルティのプログラムは、連番またはランダムな数値IDを発行し、コールセンターの担当者やモバイルのキーボードが黙って破損させない末尾の桁を必要とします。倉庫や物流のチームはカートンや資産のコードを印刷しますが、ハンディスキャナーの経路で2桁が転置されることはよくあり、ダムは弱い方式が見逃すあらゆる隣接入れ替えを捕捉します。

複数桁の参照番号を持つ紙のフォームをいまだに扱う医療や教育の窓口は、入力時に検証し、重複したカルテや登録を作る代わりに即座に訂正を示せます。統合テストやデータ品質のジョブは、CSVエクスポートの各行について期待されるチェックディジットを再計算し、保存された完全な番号がもはや一致しない行にフラグを立て、人の編集と生成器の1つずれのバグの両方を捕捉します。

どのワークフローでも契約は同じです。ダムのチェックが通ったことを、認可や所有権の証明として扱わないでください。それはこのアルゴリズムのもとで数字列が正しく構成されていることを証明するだけであり、あらゆるチェックサムに適用すべきものと同じ正直さの基準です。

エクスポートされたID列の監査

パートナーのCSVや倉庫のエクスポート内のすべての数値IDを一括検証し、チェックディジットが再計算した期待値ともはや一致しない行を隔離します。

ダムのチェックディジットとは何ですか?

H・マイケル・ダムの準群アルゴリズムで計算される末尾の1桁で、いずれか1桁の誤りや隣接する転置があると、完全な番号の検証が必ず失敗するようにします。

文字、スペース、ハイフンがあるとどうなりますか?

0〜9の数字のみを指定してください。失敗した検証タスクには課金されません。

ダム方式とルーン方式のチェックディジットはどう違いますか?

ルーン方式は1桁の誤りはほぼ見つけますが、09を90と打つような隣同士の入れ替わりを一部見逃します。ダム方式は1桁の誤りも隣り合う2桁の入れ替わりもすべて見つけます。

すでにチェックディジットが付いた番号はどう確認しますか?

検証の項目を選び、番号全体を入力します。チェックディジットを含む番号全体をダムの表でたどると、正しい番号なら最後は必ず0になります。0にならなければ、どこかの桁が打ち間違いです。

チェックディジットが合えば本物の番号ですか?

いいえ。合っていることは、数字の並びがダム方式の規則どおりであることを示すだけです。その番号が実際に発行されたか、誰のものか、使ってよいかまでは分かりません。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/enc/damm

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/enc/damm \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"572"}'
{
  "number": "572"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.damm",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

この機能は、すでにお持ちのペイロードに対してその桁を計算するか、すでに1桁を含む完全な番号を検証し、非数値の入力は黙って無視するのではなく明確なエラーで拒否します。ブラウザーで無料実行するか、公表価格でKIT APIを呼び出してください。

ダムのアルゴリズムが弱い検査では見逃す誤りを捕捉する仕組み

その表の構造ゆえに、ペイロードを処理した後の暫定桁は、まさに付加すべきチェックディジットとなり、その桁を含む完全な番号を処理すると、番号が正しく構成されている場合は常にゼロで終わります。任意の純粋な数字列をペイロードとして選んで適用できるため、商品バーコードの検証ツールではなくエンコーディングユーティリティに属します。

チェックディジットの計算、または完全な番号の検証方法

モードcomputeが既定です。空文字列、numberの欠落、無効なモード値は、いかなる表の参照が走る前に失敗し、課金されません。新しいIDを発行するときはcompute、ユーザー、パートナーファイル、走査したラベルからIDを受け取り、レコードを引く前に真偽のゲートが必要なときはvalidateをお選びください。0から9までの文字のみを含むnumberフィールドを送信してください。スペース、ハイフン、文字、小数点、指数表記は、非数値の入力としてinvalid_inputで拒否されるため、黙って除去された値を受け入れることはありません。エンジンはペイロードをダムの表に通し、check_digitを1文字の文字列として返し、with_checkをペイロードにその桁を足したものとして返すため、単一の文字列として保存や印刷ができます。モードvalidateは、少なくとも2桁の完全な番号(1桁以上のペイロード桁に末尾のチェックディジットを加えたもの)を期待します。応答は、完全な走査が暫定値ゼロで終わるときvalidをtrueと報告し、常に末尾のcheck_digit、ペイロードのみから再計算したexpected_check_digit、そして最後の桁を除いたペイロード部分文字列を含みます。この形により、2度目の呼び出しなしにフォームで「入力はX、期待値はY」と表示するのが容易になります。この経路は時計も乱数源もネットワークもない純粋な解析であるため、同じ入力は無料のブラウザーツールでもAPIでも常に同じJSONを返します。成功したリクエストごとに$0.002で、一括インポート、オンボーディングフォーム、バッチのラベルプリンターを、独自ティアの交渉なしに保護できます。

ダムのチェックディジットが実システムに合う場面

カード類似のフィールドですでにLuhnを使うプロダクトチームも、カードネットワークの慣例より強力な転置特性が重要な内部識別子には、ダムを採用できます。

会員IDや口座IDの発行

連番のペイロードを生成し、computeモードを呼び出してwith_checkを保存すれば、カードに印刷したり会員へメールしたりする前に、新しいIDのすべてがダムの末尾桁を持ちます。

入力時に手入力・走査コードを検証

ユーザーやスキャナーが完全な番号を送信したら、validateモードを呼び出し、validがfalseのときは参照を止め、expected_check_digitを示して1つの打ち間違いの訂正を助けます。

このAPIでダムのチェックディジットをどう計算しますか。

numberにペイロードの数字を、modeをcompute(またはmodeを省略)に設定してPOSTします。応答にはcheck_digitとwith_check(ペイロードにチェックディジットを足したもの)が含まれます。

すでにチェックディジットを持つ番号をどう検証しますか。

完全な数字列とmode validateでPOSTします。応答にはvalid、check_digit、expected_check_digit、そして最後の桁を除いたペイロードが含まれます。

ダムのチェックディジットツールは無料ですか。

ブラウザーツールは無料で、ローカルで実行されます。API呼び出しは公表された$0.002の基本価格で前払いのKIT残高を使い、無効な入力に課金されることはありません。

KITの完全なドキュメントを見る →