Crockford Base32エンコーダー
「Hello」はCrockford Base32で91JPRV3Fになります。I・L・O・Uを含まない字母なので、シリアル番号やサポートコードを電話で読み上げても、手で打ち直しても崩れません。任意のチェック記号で打ち間違いも見つけられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello
- 計算モード
- Encode
- 結果
- 91JPRV3F
- 長さ
- 8
- 入力バイト数
- 5
- アルファベット
- Crockford
Crockford Base32は、手で読み書きする識別子向けに設計された実用的な符号化字母です。混同しやすい記号—I、L、O、U—を外すことで、シリアル番号・短いトークン・サポートコードがメールクライアント、紙のメモ、電話での読み上げに耐えられます。このCrockford Base32エンコーダー/デコーダーはUTF-8テキストをその字母へ往復変換し、小文字・ハイフン・Oを0・IとLを1とする人向けの許容を受け付け、転写誤り検出が必要なときはCrockfordの任意のモジュロ37検査記号を付与または検証できます。
Crockford Base32とは何か、RFC 4648 Base32との違い
標準のBase32(RFC 4648)はA–Zと2–7を使い、等号パディングを付けます。回線形式やMIMEには向きますが、人には不便です。大文字Iは1に、大文字Oは0に見え、Uは口頭のコードを濁します。
Douglas CrockfordのBase32字母は三十二記号—0から9の数字とI・L・O・Uを除いたA–Z—を保ち、残る字形は印刷・音読・入力がしやすいです。復号は意図的に寛容で、読みやすさのためのハイフン区切り、大文字小文字の無視、Oを数字0、IとLを数字1として扱います。
等号パディングはなく、末尾の不完全な5ビット群も符号化時に最終記号として出力され、短い文字列向けの一般的なCrockford実装と揃います。任意の検査記号は三十七記号集合(データ三十二記号にアスタリスク・チルダ・ドル・等号・Uを加えたもの)から取り、記号列の値をモジュロ三十七した余りです。
再入力されるラベルには付与し、checkがtrueの復号では検証してください。
Crockford Base32エンコーダーが真価を発揮する場面
製品・運用チームは、サポート担当が電話でIと1を一文字ずつ言い分けずに読める短い公開識別子にCrockford Base32を使います。倉庫や資産タグはハイフン区切りと、誤入力一桁で誤棚が選ばれる前に捉える任意検査記号の恩恵を受けます。
ULID風や独自のコンパクトトークンを作る開発者は、RFC 4648の2–7集合ではなく人が期待するCrockford字母のエンコーダーと、チャットやPDFからの乱れた貼り付けを受け付けるデコーダーを求めます。人に優しい符号化の授業・面接課題には、データ中のUを拒否し検査不一致を説明しゴミを返さない決定的オラクルが必要です。
活用例
人が読みやすいサポート・チケットコード
短い参照を符号化し、担当者がI/L/O混同なく音読できるようにします。ハイフンや小文字を含む貼り付けも復号します。
よくある質問
Crockford Base32はどの字母を使いますか?
数字0–9とI・L・O・Uを除くA–Z(三十二記号)です。復号は小文字・ハイフン・Oを0・I/Lを1として受け付けます。
RFC 4648 Base32と何が違いますか?
RFC 4648はA–Zと2–7に'='パディングです。Crockfordは曖昧な文字を除き0–9と別の文字集合を使い、パディングなしで任意検査記号を提供します。
チェック記号は何のために付けますか?
コードの値を37で割った余りを表す1文字で、32個のデータ記号に*、~、$、=、Uを加えた中から選ばれます。人が打ち直すラベルに付けておくと、照合を有効にしたデコードで最後の文字が合わないときに失敗として知らせます。
ハイフンや小文字が混じったコードもデコードできますか?
できます。区切りのハイフンは無視され、大文字と小文字も区別しません。Oはゼロ、IとLは1として読まれるので、チャットやPDFから貼り付けた文字列もそのまま戻せます。データ中のUは受け付けません。
末尾に「=」の埋め文字は付きますか?
付きません。最後に5ビットに満たない部分が残っても、そのまま最後の1文字として出力されます。短い文字列でも、一般的なCrockford実装と同じ結果になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/base32-crockford \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base32-crockford", {
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/base32-crockford",
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/base32-crockford", 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/base32-crockford", 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.base32_crockford",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
同じ純粋なparseロジックが無料ブラウザツールと課金API経路を動かすため、学習用スクリプト、在庫ラベル、本番ワーカーが1文字も食い違いません。不正な入力はinvalid_inputと、不正記号または検査不一致を明示するメッセージで失敗し、黙って壊れません。
Crockford Base32とは何か、RFC 4648 Base32との違い
本機能はその人優先の契約をUTF-8テキスト上で決定的なビット詰めにより実装し、同一入力は常に同一のCrockford文字列になり、ペイロードが有効なUTF-8なら逆復号で元のバイトに戻ります。
入力契約、応答の形、エラー時の振る舞い
modeはencodeまたはdecodeで既定はencode、別名op・operation・directionを受け付けます。checkは既定falseのブール値です。空文字は空のresultに符号化されます。長さ上限により過大な貼り付けは早めに失敗します。検証失敗は課金されません。必須の文字列フィールドtextと任意のmode・checkを持つJSON本体をPOSTしてください。符号化でtrueならAPIはCrockford検査記号を末尾に付けcheck_symbolとして返し、復号でtrueなら末尾文字がモジュロ三十七の余りと一致しなければタスクはinvalid_inputで失敗します。encode成功時の本体にはmode、元のtext、result(Crockford文字列)、length、input_bytes、alphabet Crockford、charset要約、checkフラグ、standardラベルが含まれます。decode成功時はmode、text、result(UTF-8文字列)、length、output_bytes、同じ字母メタデータ、check要求時はcheck_verifiedと通過したcheck_symbolが得られます。checkなしの復号はハイフン除去とO/I/L別名適用のあと文字列全体をデータとして扱い、データ字母外の文字—ペイロード中の単独Uを含む—は位置と文字を示すinvalid_inputを起こします。不正なmodeや非ブールのcheckもinvalid_inputです。
Crockford Base32エンコーダーが真価を発揮する場面
実装はtier Aの純粋parseのため、成功した各呼び出しはモデルトークンも外向き通信もなく公開の基本料金$0.002です。ペイロードを控え目にし、自動テストでresult文字列を固定すれば、独自字母ライブラリを立てずにラベル・サポートコード・エッジワーカー向けの再現可能なCrockford Base32が得られます。
連携の活用例
任意検査記号付き資産タグ
check=trueでCrockfordラベルを印刷し、一回の誤入力で検証が失敗し、在庫が誤った場所へ移る前に止めます。
トークンとIDのパイプライン
無料ブラウザツールと同じ純粋ロジックで、スクリプトやワーカー上のCrockford Base32ペイロードを生成・検証します。
技術的な質問
checkオプションは何をしますか?
符号化でcheck=trueは三十七記号集合からモジュロ37検査記号を末尾に付けます。復号でcheck=trueはその末尾記号を必須とし不一致を拒否します。
無効な文字を送るとどうなりますか?
タスクはinvalid_inputで失敗し、位置と文字を示すメッセージを返します。Uはデータ字母では無効です(検査記号としてのみ可)。
Crockford Base32エンコーダーの料金は?
ブラウザツールは無料です。API要求は成功した呼び出しごとに前払いKIT残高から$0.002です。不正入力は課金されません。