香港IDチェックディジット
本体A123456のチェックディジットは3で、完全な番号はA123456(3)になります。最後の1文字を求めたり、登録や書類の受け付け前に番号全体を確認したりして、A123456(4)のような打ち間違いを見つけられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- HKID (香港身分証)
- A123456
- 計算モード
- Compute
- 入力
- A123456
- チェックディジット
- 3
- チェックディジット付き
- A1234563
- 整形済み
- A123456(3)
香港の身分証番号は、接頭文字と本体の6桁に対する固定のモジュロ11重み付けから導かれる、1文字のチェック文字で終わります。末尾文字は0から9の数字、または文字Aであり、通常は本体の後に括弧付きで印刷されます(例:A123456(3) や G123456(A))。誤入力の文字、入れ替わった本体の数字、フォーム上のOCR誤りはチェックサムを崩しやすいため、プロファイル保存・KYC書類の受付・名簿取込の前にチェックディジットを検証すると、キー入力ミスを早期に検出できます。本機能は1文字または2文字の接頭と6桁から香港IDのチェックディジットを計算し、末尾文字を含む完全な番号を検証し、句読点を黙って削除せず不正入力を報告します。
香港IDチェックディジットとは何か、モジュロ11の重みがどう働くか
香港の永住または非永住身分証番号は、1文字または2文字のアルファベット接頭、本体となる6桁の十進数字、そして末尾のチェック文字から成ります。入境事務処の方式では各文字を数値に対応させ(Aは10、Bは11、Zは35)、1文字接頭の場合は値36の先頭スペースを挿入し、常に8位置の和になるようにします。
これら8つの値に、左から右へ固定の重み9・8・7・6・5・4・3・2を掛けます。積を足し、合計を11で割った余りを求め、11からその余りを引いた値がチェックになります。結果が11なら印刷文字は0、10なら文字A、それ以外はその十進チェック数字そのものです。
誰かがA123456(3)をA123456(4)と打つと重み付き和が一致せず検証は失敗します。同じ規則は、人事オンボーディング、銀行KYC一式、通信契約フォーム、学校登録ファイルで、プラスチックカードや旅券スキャンから番号を再入力するときの1文字置換の多くを捉えます。
本ツールは、任意のスペースと括弧処理の後、正規化した大文字と数字に対してこの公開重み付けを実装します。政府データベースへの照会、人物の存在証明、本体からの年齢や居住状態の解読は行わず、公開されたチェック算法の下で文字列が一貫していることだけを示します。
決済カードで使うLuhnのモジュロ10と比べ、HKID方式は文字値とモジュロ11、番兵としてのAを使うため、香港ID欄にLuhn検証器を流用してはなりません。中国本土の居民身分証やマカオID向けの補助と比べ、香港の規則はこの1〜2文字接頭・6桁本体・8位置の重みベクトルに固有です。
どの方式が必要かを知っておくと、一般的なチェックディジットユーティリティが香港身分証として正しくない数字列を受け入れたときの誤った安心を避けられます。
香港IDチェックディジットがKYC・人事・業務フローにどう位置づくか
銀行・証券・フィンテックアプリの顧客確認と口座開設フローでは、対象となる居住者プロファイルごとに香港身分証番号を保持します。オンボーディング中の1桁の誤入力は、コンプライアンス文書を別人へ送ったり、後の文書スキャン照合を失敗させたりします。雇用主・学校・通信事業者はCSV一括取込で各人にHKIDを付けます。
紙から再入力するときの1桁ずれや括弧欠落はよくあり、チェックディジットは最初の給与計算やSIM有効化の前にそれらを捉えます。一般的なLuhnやISO 7064のチェックツールを既に公開している製品チームでも、文字対応・1文字接頭のスペース埋め・長さ制限・Aを10とする書式が領域に合うよう、HKID欄には本香港専用能力を使うべきです。
どのフローでも契約は同じです。合格した香港IDチェックディジットを、人物の正しい特定・有効カード保有・居住者である・公式台帳登載の証明とみなさないでください。それは文字列が香港身分証のモジュロ11チェック算法の下で一貫していることだけを示します。
活用例
取引先・給与ファイルの香港ID列を監査する
CSV取込の各HKIDを一括検証し、チェック文字が再計算した期待値と一致しない行を隔離します。
よくある質問
長さ・文字・句読点が誤っているとどうなりますか?
1〜2文字と6桁、任意でチェック0–9またはAを指定してください。compute は本体のみ、validate は完全IDが必要です。失敗した検証タスクは課金されません。
香港IDのチェックディジットはどう計算しますか?
文字を数に置き換え(Aは10、Zは35)、先頭の文字が1つなら値36の空白を前に足します。8つの値に9から2を順に掛けて合計し、11から11で割った余りを引いた数が答えで、10はA、11は0と書きます。
末尾がAになる番号があるのはなぜですか?
計算結果が10になると、2桁の数ではなくAという文字でチェック文字を表すためです。G123456(A)がその例で、それ以外の結果は数字1つで表示されます。
チェックディジットが合えば本物の身分証ですか?
いいえ。分かるのは、文字の並びが公開されている計算規則に合っていることだけです。政府のデータベースは照会せず、年齢や居住資格、本人が実在するかどうかも分かりません。
かっこは入力する必要がありますか?
いいえ。確認するときは、A123456(3)のようにかっこ付きでも、A1234563のように末尾に続けても入力できます。前後の空白は取り除かれ、小文字は大文字に直されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/hkid \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hkid":"A123456"}'const res = await fetch("https://api.kit.forhosting.com/enc/hkid", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hkid": "A123456"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/hkid",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hkid": "A123456"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/hkid", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hkid":"A123456"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hkid":"A123456"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/hkid", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"hkid": "A123456"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.hkid",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ブラウザでは無料、公開料金でKIT APIを呼び出しても、どちらもネットワーク照会や実在のカード保持者台帳なしで同じ決定的算術を実行します。
チェックディジットの計算方法と完全な香港IDの検証方法
mode の既定は compute です。validate モードは末尾チェック文字を含む完全な番号を期待し、括弧付き(A123456(3)、G123456(A))でも末尾に連結(A1234563、G123456A)でも構いません。空文字、hkid 欠落、無効な mode、文字数・桁数の誤り、すでにチェック文字を含む compute 要求は、重み付き和の前に失敗し課金されません。既知の接頭と6桁本体からID文字列を組み立てるときは compute を、ユーザー・取引先ファイル・スキャンカードが完全番号を渡し内部マスタ参照前に真偽ゲートが必要なときは validate を選んでください。1文字または2文字のAからZ、0から9の6桁、および任意で0から9またはAの末尾チェック文字を含むhkidフィールドを送ってください。値の前後の空白は除去され、その他の句読点、小文字(大文字に正規化)、二重括弧、埋め込み記号は malformed として invalid_input で拒否され、黙って整形された値を受け付けません。チェック文字なしの本体のみ(例:A123456、G123456、XA123456)を渡すと、エンジンは1文字の check_digit、括弧なしの本体+その文字の with_check、カードやフォームで使う BODY(CHECK) 形式の formatted を返します。再計算したチェック文字が指定と一致すれば valid は true となり、常に check_digit、expected_check_digit、チェックなしの body、with_check、formatted を含み一貫した表示が可能です。時計・乱数・ネットワークのない純粋な parse のため、同じ入力は無料ブラウザツールでもAPIでも常に同じJSONになります。成功リクエストあたり $0.002 で、大量名簿取込・オンボーディングフォーム・ETLジョブを専用枠なしでゲートできます。
香港IDチェックディジットがKYC・人事・業務フローにどう位置づくか
入口での validate モードは valid が false のとき保存を止め、expected_check_digit を示して記録前にフォーム修正を助けます。
連携の活用例
オンボーディングとKYCフォームでHKID欄をゲートする
ユーザーが完全な香港IDを送信したら validate モードを呼び、valid が false のときは保存を止め、expected_check_digit を示してプロファイル書込前に1文字の誤入力を直せるようにします。
ID文字列を完成させるときにチェックディジットを計算する
文字接頭と6桁本体から compute モードを呼び、with_check または formatted を保存し、新しいHKID風文字列が印刷・エクスポート前に正しい末尾文字を持つようにします。
技術的な質問
香港IDのチェックディジットとは何ですか?
文字値(A=10..Z=35、1文字接頭では先頭スペース=36)と本体6桁に重み9..2を掛け、モジュロ11で求める末尾1文字(0–9またはA)です。1文字の誤入力の多くがチェックサムを壊します。
このAPIで香港IDのチェックディジットをどう計算しますか?
hkid に本体のみ(1〜2文字+6桁、例 A123456)を、mode に compute(または省略)を指定してPOSTします。応答に check_digit、with_check、BODY(CHECK) 形式の formatted が含まれます。
完全な香港IDはどう検証しますか?
チェック文字を含む完全番号(例 A123456(3) や G123456(A))と mode validate でPOSTします。応答に valid、check_digit、expected_check_digit、body、formatted が含まれます。
香港IDチェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは公開ベース料金 $0.002 の前払いKIT残高を使い、無効入力は課金されません。