ForHosting KIT · 開発者向けツール

z-base-32エンコーダー&デコーダー

「Hello」はz-base-32でjb1sa5dxになります。Zookoが考えたこの字母は0、2、l、vを使わず、埋め文字も付けないため、コードが短く、読み上げや手書きでの書き写しでも間違えにくくなります。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
テキスト
Hello
計算モード
Encode
結果
結果
jb1sa5dx
長さ
8
入力バイト数
5
アルファベット
z-base-32

z-base-32はZooko Wilcox-O'Hearnによる人間向けBase32変種です。丁寧に並べ替えた32記号のアルファベットで、読み書きと口頭での書き取りを楽にしつつ、1文字あたり5ビットを詰めます。RFC 4648のBase32と異なり、紛らわしい字形を除き、よく使う音が現れやすいよう記号順を変え、等号パディングを省略してトークンを短く保ちます。この機能はUTF-8テキストを小文字のz-base-32へ変換するか、z-base-32文字列から元のテキストを復元します。

Zookoアルファベットでz-base-32がビットを詰める仕組み

z-base-32は古典的Base32と同じく1文字5ビットという考え方から出発しますが、記号表はまったく異なります。32文字は y b n d r f g 8 e j k m c p q x o t 1 u w i s z a 3 4 5 h 7 6 9 の順です。

数字の0と2、文字のエル、文字のブイは、コードを声に出して読んだり手で写したりするときに他の字形と混同しやすいため除外されています。残りの記号は、母音と頻度の高い子音が値空間の前寄りに出やすい順になっており、乱数文字列がやや発音しやすくなります。

エンコードは入力をUTF-8バイトとして扱い、連続したビット列として読み、5ビットごとにアルファベット1文字を出します。末尾に残ったビットは右側を0で埋めて最後の5ビット組を完成させ、等号は付けません。デコードは対応を反転します。

各記号が5ビットを寄与し、8ビットが揃うと完全なバイトを出し、完全なバイトにならない余りのパディングビットは捨てます。空白は無視されるため複数行の貼り付けでも動作し、大文字は参照前に小文字へ揃えます。人が急いで打つトークンに対して正しい失敗の仕方です。

送る内容と返る内容

encode モードは text を素のUTF-8として扱い、パディングなしのZookoアルファベット小文字の result 文字列を返します。decode モードは text をz-base-32として扱い、大文字小文字と空白を正規化し、各記号を検証し、復元したUTF-8文字列を result に返します。

両方向とも mode、元の text、result、主出力の length、alphabet と charset のラベル、false の padding フラグ、クライアントがプロファイルを確認できる短い規格参照を返します。検証失敗は前払い残高を消費しません。

典型的な確認は、Hello のような短い語のエンコード、往復で同じテキストに戻るデコード、z-base-32が意図的に除外する0やエルなどを貼ってエラーを起こすことです。素早い確認と授業デモには無料のブラウザフォームを使い、大量トークンや回帰用フィクスチャが必要なときはスクリプトから同一契約を呼び出してください。

実務でz-base-32が使われる場面

電話で読み上げたり紙に書いたりスクリーンショットから打ち込んだりする、人向け識別子には、曖昧な字形を避けるアルファベットが有利です。

z-base-32はまさにそのために設計され、Mnet や Tahoe-LAFS などのオープンソース系、ZRTP などのプロトコルが採用し、密なアルファベットにありがちな0とO、1とIの混同なしに短いコードを交換できるようにしました。

オフライン復旧フレーズ、エアギャップ認証の短いコード、サポート向けワンタイムトークンを作る製品チームは、機械スキャンだけでなく発話や書き取りが想定されるとき、Zookoの表を好むことが多いです。相互運用テストを書く技術グループは、自前ライブラリと一致し不正文字を黙って置き換えない、エンコードとデコードの単一の正解が必要です。

符号化を教える教材著者は、RFC 4648 Base32の下に埋もれさせず z-base-32 専用ランディングを求めます。学習者はZooko、人間向けBase32、パディングなしトークンを別々の意図で検索するからです。チャットから複数行コードを貼るサポート担当は、誤った鍵になるゴミ記号は拒否しつつ空白は許容する必要があります。

A-Zと2–7の古典的RFC 4648 Base32、Base64、Crockford Base32が必要なら、このz-base-32エンコーダページに詰め込まず、別ランディングとして扱ってください。

読み上げ・手書きの復旧コード

短い秘密をz-base-32で符号化し、利用者が声に出して読んだり書き写したりしても、0・エル・ブイ・2を似た字形と取り違えないようにします。

人が扱いやすいオフライントークン

エアギャップ認証、サポートのワンタイムコード、手入力される製品URL向けに、パディングなしの短い識別子を生成します。

z-base-32はどのアルファベットを使いますか?

Zookoの並べ替えアルファベット ybndrfg8ejkmcpqxot1uwisza345h769 です。0・l・v・2を除外し、'='パディングは使いません。

RFC 4648 Base32との違いは何ですか?

RFC 4648はA-Zと2–7に任意の等号パディングを使います。z-base-32は記号順が違い、曖昧な文字を除き、パディングを省略します。互換ではありません。

エンコードとデコードの両方はできますか?

はい。 mode を encode(既定)にすると素のUTF-8をz-base-32へ、decode にするとz-base-32文字列からテキストを復元します。

無効な文字が含まれるとどうなりますか?

Zookoアルファベット外の記号は決して置換されません。検証失敗は課金されません。

料金はいくらですか?

ブラウザツールは無料でローカル実行です。無効入力は課金されません。

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

POSThttps://api.kit.forhosting.com/enc/base32-zbase

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

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

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

1リクエストあたり$0.002

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

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

エンコードはバイトをアルファベット ybndrfg8ejkmcpqxot1uwisza345h769 に詰め、デコードは大文字小文字を揃え、空白を除き、不正な記号を明確な invalid_input で拒否します。打ち間違えた文字が黙って誤ったペイロードになることはありません。無料のブラウザツールと有料APIは同一の純粋な同型関数を共有するため、デモ、スクリプト、本番Webhookは常に一致します。

Zookoアルファベットでz-base-32がビットを詰める仕組み

アルファベット外の文字は位置と問題の記号付きで invalid_input を上げます。経路はネットワークも乱数種も壁時計タイムスタンプもない純粋な整数ビット詰めなので、同一入力は常に同一のJSONになります。このページは意図的にRFC 4648 Base32でもCrockford Base32でもありません。それらのアルファベットとパディング規則は別の検索意図と相互運用先を持ちます。

送る内容と返る内容

必須の文字列フィールド text と、任意の mode(encode または decode)を送ってください。mode を省略すると encode が既定になり、最小のペイロードでも有用です。encode は input_bytes も、decode は output_bytes も報告します。text 欠落、非文字列オブジェクト、未対応の mode、文書上の最大長超過、不正なアルファベット文字、有効なUTF-8でないデコード結果は、いずれも invalid_input と明確な英語メッセージで失敗します。成功したAPI呼び出しの価格は公開ベースの $0.002 /アイテムです。

実務でz-base-32が使われる場面

この機能は純粋な parse エンジンなので、API価格は成功アイテムあたり公開ベースの $0.002 で、検証失敗は残高を消費しません。

Zooko系ライブラリ向け相互運用フィクスチャ

ZRTP、Tahoe系システム、関連オープンソースで使うz-base-32ライブラリと一致するエンコード/デコードのゴールデンベクトルを生成します。

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