BSDチェックサム計算
「abc」のBSDチェックサムは16556、16進数で40ac、ブロック数は1です。昔のUnixのsumコマンドがBSD方式で出すのと同じ組み合わせなので、古いスクリプトや教科書の例題の確認に使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- abc
- 結果
- 40ac
- チェックサム
- 16,556
- Hex
- 40ac
- 10進数
- 16,556
古典的なBSD sumアルゴリズムは、歴史的なUnixのsumコマンドがBSDモードで用いる16ビットの回転加算チェックサムです(GNU系ではしばしばsum -rとして呼び出されます)。巡回冗長検査とは異なり、単一の16ビットレジスタを右に1ビット回転してからメッセージの各バイトを加算し、その後1024バイト単位のブロック数を報告します。レガシーなテープラベルを照合する技術者、教科書どおりのsum出力を再現する学生、古いスクリプトと短いテキスト断片を突き合わせるサポート担当は、しばしば同じ決定的な組——符号なしチェックサム値とブロック列——を必要とします。このBSDチェックサムツールは空でないテキストを受け取り、UTF-8として符号化し、その回転加算ループを実行して、16ビット値を十進と小文字の十六進4桁、ブロック数、アルゴリズム名、バイト長、短い要約とともに返します。
古典的BSD sumが計算するものとブロック数が重要な理由
BSDチェックサムは各メッセージをバイト列として扱い、0から始まる1つの16ビット累算器を保持します。各バイトについて、まずレジスタを16ビット内で右に1ビット回転し——最下位ビットが最上位ビットへ移り——その後バイト値を加算し、和を再び16ビットにマスクします。ストリームが終わると、その符号なし整数が古典的sum出力のチェックサム列になります。
あわせて本ツールは、UTF-8長の切り上げ除算によりメッセージが占める1024バイトブロック数を報告します。十進と小文字十六進4桁の両方を返すことで、シェル比較、継続的インテグレーションのフィクスチャ、古いsumスクリプトからの移行メモへ貼り付けやすくなります。
BSD sumは衝突耐性がなく鍵付きでもないため、真正性の証明ではなく、高速なレガシー整合性・フレーミング検査として扱ってください。検索意図が古典的な回転加算ではなく暗号学的ハッシュである場合は、SHA系ダイジェストを優先してください。
入力できる内容と空のテキストの扱い
チェックサムしたい空でない任意の文字列です。文字列はBSDループの前にUTF-8符号化されるため、複数バイト文字は同じUTF-8ストリームを受け取ったファイル向けsumとまったく同じ各符号単位バイトを寄与します。古典フィクスチャ:textがabcならチェックサム16556、hexは40ac、blocksは1。
別フィクスチャ:Helloなら8401、hexは20d1。空入力は理論上の空ファイル組0 0を返すのではなく意図的に拒否され、プロダクトUXと自動採点が欠落回答と本物のチェックサムを区別できます。成功経路と空入力エラーの両方を継続的インテグレーションに固定し、回転方向やブロックサイズの偶発的変更が気づかれずに出荷されないようにしてください。
BSDチェックサムが役立つ場面
レガシーシステムの著者やUnix史の学習者は、言語ごとに完全なcoreutils環境を入れずに手計算の回転加算手順をsum -rと突き合わせるためにBSDチェックサム計算ツールを使います。
教育プラットフォームやLMSプラグインには、空メッセージに対して0を返すのではなく空入力を拒否する決定的オラクルが必要で、自動採点が欠落回答と本物のチェックサムを区別できます。
BSDチェックサム、sumコマンドのチェックサム、古典Unix sumで順位付けするコンテンツサイトは、無料経路が同じ純粋モジュール上の有料自動化とバイト一致するライブツールの恩恵を受けます。検証失敗は拒否後に残高を消費しません。
検索意図が古典BSD回転加算を超える場合にのみSystem V sum、CRC-16、暗号ハッシュのランディングと組み合わせ、このページはBSD sumに絞ってSEO意図を鮮明に保ち、Adler-32やCRC-16のランディングを共食いしないようにしてください。
活用例
授業での回転加算デモ
教員は、16ビット右回転と加算でよく知られたabcとHelloのフィクスチャが得られることを、各生徒機にcoreutilsを入れずに示します。
レガシー整合性ヘルパー向けCIフィクスチャ
パイプラインはBSD sumの十進・hex・blocksの決定的出力と空入力エラーを固定し、回転やブロックサイズの偶発的変更を即座に検出します。
よくある質問
どのアルゴリズムに一致しますか?
歴史的Unix sumおよびGNU coreutils sum -rの古典BSD sumです。各バイトについて16ビットレジスタを右に1ビット回転してからバイトを加算し、ブロック数はceil(length/1024)です。
テキストが空の場合はどうなりますか?
空でない文字列が必須であり、空入力は0・0ブロックの成功チェックサムとしては扱いません。
BSD sumはSystem V sumやCRC-16と同じですか?
いいえ。 System V sum(-s)は別の累算と512バイトブロックを用います。CRC-16は多項式レジスタを用います。本ツールは古典BSDの回転加算のみを実装します。
結果のブロック数は何を表していますか?
UTF-8に変換したテキストが1024バイト単位で何ブロックを占めるかを、切り上げて示しています。1から1024バイトまでは1ブロックで、次の1キロバイトから2ブロック目になります。
ファイルの改ざんを確かめるのにBSDチェックサムは使えますか?
おすすめできません。衝突に強くなく、鍵も使わないため、昔のシステムでの手早い整合性チェック向けです。真正性を確かめたい場合は、SHA系のハッシュを使ってください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/bsd-sum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"abc"}'const res = await fetch("https://api.kit.forhosting.com/enc/bsd-sum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "abc"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/bsd-sum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "abc"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/bsd-sum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"abc"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"abc"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/bsd-sum", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "abc"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.bsd_sum",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
空入力はinvalid_inputで拒否されるため、呼び出し側が欠落フィールドと古典コマンドの空ファイル時の0 0報告を混同しません。無料のブラウザ経路と前払いAPIは同一の純粋モジュールを共有するため、授業用フィクスチャと本番パイプラインは同じ文字列に対して常に同じチェックサムとブロック数で一致します。
古典的BSD sumが計算するものとブロック数が重要な理由
1から1024バイトの空でないペイロードは1ブロック、次のキロバイトで2ブロック目が始まる、という具合です。この組は同じバイト列上のGNU coreutils sum -rと一致するため、abcのような短いASCIIフィクスチャはチェックサム16556で1ブロック、Helloは8401で1ブロックとなります。
入力契約、空文字列エラー、JSON応答の形
必須の文字列フィールドtextを1つだけ持つJSON本文をPOSTしてください。同じフィールドにinput、value、s、data、message、payloadという別名も受け付けるため、SDKスタブやフォーム送信の柔軟性が保たれます。text欠落、非文字列、空文字列はいずれもinvalid_inputで失敗し、空でない文字列が必要である旨が明確に示されます。これらの失敗は前払いAPIでは課金されません。成功時の本文には、同じ小文字十六進4桁のチェックサムがresultとhexに、符号なし16ビット整数がchecksumとdecimalに、1024バイト単位のブロック数がblocksに、algorithmはBSD sum固定、input_bytesはUTF-8長、textは入力のエコー、messageはバイト数・十進・hex・ブロック数の要約が含まれます。任意のnullフィールドはnullとして出さず省略し、きれいなWebフォーム向けの宣言的レンダラ契約に合わせます。
BSDチェックサムAPIが活きる場面と料金の仕組み
単発確認には無料のブラウザ内ツールを、安定した契約と残高が必要なときはバックエンド、サーバーレス関数、SDKから前払いKIT APIを$0.002/成功アイテムで呼び出してください。ペイロードはWorker isolateのitem呼び出しに適した通常のテキストサイズに留め、本ツールは短い文字列とプロトコル断片向けであり、数メガバイトのバイナリには向きません。
連携の活用例
レガシーなsum -rの検証
歴史的なsum -rの組をまだ出力するスクリプトを移行する際、短いテキストペイロードに対する古典BSDチェックサムと1024バイトブロック数を再現します。
技術的な質問
テキストのBSDチェックサムはどう計算しますか?
空でない文字列フィールドtextを含むJSONを送ってください。APIは文字列をUTF-8符号化し、古典BSD sumの回転加算ループを実行し、16ビット値を十進と小文字十六進4桁、および1024バイトブロック数として返します。
BSDチェックサム計算は無料ですか?
ブラウザツールはお使いの端末上で無料です。API呼び出しは成功アイテムごとに$0.002の前払いKIT残高を使い、検証失敗は課金されません。