インターネットチェックサム(RFC 1071)— IP/TCP/UDP 16bit
helloのインターネットチェックサムはbc2dです。5バイトを16ビットずつ組にし、桁あふれを戻しながら足して、最後に合計を反転します。ヘッダーを16進で貼り付ければ、IPv4、TCP、UDPのチェックサムを確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- hello
- 計算モード
- Text
- チェックサム
- bc2d
- インターネットチェックサム (整数)
- 48,173
- バイト
- 5
- アルゴリズム
- Internet checksum (RFC 1071)
本ツールは平文(UTF-8 として直列化)または16進バイトダンプのいずれかを受け取り、バイト列をビッグエンディアンの16ビット語としてキャリー折り返しで加算し、1の補数を4桁の小文字16進文字列と対応する符号なし整数として返します。空入力は有効で、ゼロ和の自然な補数である ffff を得ます。
RFC 1071 インターネットチェックサムの意味と語の形成
RFC 1071 は単純な完全性残差を規定します。メッセージをネットワークバイト順の16ビット語の列として扱い、1の補数算術で加算してキャリーを下位16ビットへ折り返し、その和の1の補数を取ります。結果は通常4桁の16進で示される16ビット値です。
本インターネットチェックサム計算機はその折りたたみをそのまま実装します。text モードでは入力文字列をまず UTF-8 に符号化し、マルチバイト文字が実際のオンワイヤバイトを寄与するようにします。hex モードでは空白・コロン・ダッシュ・アンダースコアおよび任意の 0x 接頭辞を除いた後の生オクテットとして解析します。
語はビッグエンディアンで形成され、各対の第1バイトが高位半分、第2バイトが低位半分となり、IP・TCP・UDP ヘッダの線上配置と一致します。バイト長が奇数の場合、末尾バイトは RFC の 4.1 節に従い低位バイトをゼロとした語の高位半分として扱われ、1バイトのゼロパッド以外の余分なデータを発明せずに全バイトが参加します。
アルゴリズムは意図的に暗号学的ではなく、安価で多くの偶発的ビット反転や切り詰められた貼り付けを検出し、ルータとスタックが既に期待する残差です。CRC-32 でも Fletcher-32 でもハッシュ族の一員でもありません。
第三者ツールが同一バイトで食い違う場合、ほぼ常にリトルエンディアン詰め・別のパッド規則・CRC 多項式・または同一文字の別符号化を使っています。
活用例
IP・TCP・UDP ヘッダの検証
貼り付けたヘッダまたは疑似ヘッダの16進ダンプ上で RFC 1071 残差を再計算し、フルネットワークスタックなしで IPv4・TCP・UDP のチェックサム欄を確認します。
よくある質問
インターネットチェックサム(RFC 1071)はどう計算しますか?
既定モードは text(UTF-8 バイト)です。生オクテットには mode を hex にします。
text モードと hex モードの違いは何ですか?
text モードは文字列を UTF-8 符号化してそのバイトをチェックサムします。hex モードは16進オクテットを解析します(空白・コロン・ダッシュ・0x 可)。
インターネットチェックサムは暗号ハッシュですか?
いいえ。 RFC 1071 は偶発的破損を素早く検出し IP/TCP/UDP スタックと一致しますが、意図的な衝突や改ざん耐性を目的としません。暗号ダイジェストが必要なら SHA 系ツールを使ってください。
他のツールと結果が違うのはなぜですか?
多くの場合、相手のツールがバイトを逆の順で組にしている、最後の1バイトの補い方が違う、CRCを使っている、文字の符号化が違う、のいずれかです。ここではIP、TCP、UDPのヘッダーと同じく、各組の最初のバイトを上位にします。
空の入力でffffになるのはなぜですか?
バイトがなければ合計は0で、0の1の補数がffffになるためです。エラーにせず決まった値を返すので、空のこともある任意のデータのチェックサムを求めるときに役立ちます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/internet-checksum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/internet-checksum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/internet-checksum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/internet-checksum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/internet-checksum", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "hello"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.internet_checksum",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
インターネットチェックサムは RFC 1071 で定義された16ビット1の補数残差であり、IPv4・TCP・UDP 全体で受信側がヘッダとペイロードの偶発的な破損を検出するために使われます。不正な16進—セパレータ(空白・コロン・ダッシュ)や任意の 0x 接頭辞を除いた後の奇数ニブル数や非16進文字—は課金なしで invalid_input を発生させます。公開されている基準価格 $0.002 での計算にネットワーク呼び出し・乱数ソルト・壁時計は入りません。
RFC 1071 インターネットチェックサムの意味と語の形成
空ペイロードは和ゼロを生み、その1の補数は ffff です。これはフィールド未使用時によく使われる恒等値です。
入力契約、text と hex の違い、応答フィールド
任意の mode が解釈を選びます。text(既定)は文字列を UTF-8 に符号化し、hex は16進オクテットを解析します。空文字列は意図的に許可されます。mode は解決されたモードをエコーし、algorithm は常に Internet checksum(RFC 1071)というラベル、rfc は常に文字列 1071 で、OpenAPI 例やサポート返信が曖昧さなくプロファイルを引用できます。CRC・Fletcher・暗号ダイジェスト用のモード切替はありません。それらの検索意図には専用能力を使い、各ランディングページの焦点を保ってください。必須フィールド text にチェックサムしたい文字列を入れた JSON 本体を POST してください。別名 input・value・s・string・content・data も受け付けるため、古いフォームや短いクライアントでもバインドできます。有限の数と大きな整数は処理前に文字列化され、オブジェクト・配列・真偽値・null・Infinity・NaN は invalid_input となり課金されません。任意フィールドをチェックサムするパイプラインは、硬い失敗ではなく安定した ffff 残差を必要とするためです。結果のバイト長がゼロのとき、応答は empty を true、checksum を ffff、checksum_int を 65535、bytes をゼロにします。非空入力では empty は false、bytes はペイロード長、checksum は 0x 接頭辞なしの4桁小文字16進残差、checksum_int は文字列より数を好む言語向けの符号なし16ビット整数です。hex モードではセパレータ除去後の残り文字は偶数個の16進数字でなければならず、それ以外の文字や奇数ニブルは不正な16進として invalid_input で失敗します。
インターネットチェックサム API が役立つ場面
ネットワーク技術者は、フルスタックを起動せずに IPv4 ヘッダチェックサムや疑似ヘッダ+セグメント上の TCP・UDP 残差を再計算したいときに、短いヘッダダンプをインターネットチェックサム計算機へ貼り付けます。サポートチームはチケットの16進からチェックサムを再計算し、貼り付けたフレームが転送中に切り詰めや再スペースされていないことを確認します。継続的インテグレーションのジョブは UTF-8 文字列 hello や古典的なマルチバイト16進ダンプなどの既知ベクトルを固定し、偶発的なエンディアンやパッド規則のずれが即座にビルドを失敗させます。教育ラボは同じエンドポイントで1ビット反転が4桁の16進を変える様子を示し、暗号機構やコンテナ化されたパケットツールなしに誤り検出を説明します。実装は純粋な parse ティア A のため、成功した呼び出しはモデルトークンも外向きネットワークもなく公開基準価格 $0.002 で課金され、検証失敗は残高を消費しません。文書化された文字上限内にペイロードを収め、checksum フィールドを正規の貼り付け先として扱い、別のチェックサムサービスを立てずにドキュメント・SDK・エッジワーカー・教室デモ向けの再現可能な RFC 1071 値を得てください。
連携の活用例
プロトコルコード向け CI ゴールデンベクトル
テキストと16進のフィクスチャ(空 → ffff を含む)を固定し、チェックサムヘルパでのエンディアン・パッド規則・UTF-8 符号化のずれを継続的インテグレーションが検出できるようにします。
教室とチケットのデモ
無料ブラウザウィジェットまたは1回の API 呼び出しで、1バイト編集が4桁のインターネットチェックサムをどう変えるかを学生と運用者に示します。
技術的な質問
空入力ではどうなりますか?
空ペイロードは有効です。応答は empty を true、checksum を ffff、checksum_int を 65535、bytes を 0 にします。text 欠落や非文字列は invalid_input です。
インターネットチェックサムツールの料金は?
ブラウザウィジェットは無料です。API 要求は成功した呼び出しごとにプリペイド KIT 残高から $0.002 です。無効入力は課金されません。