使い方
- テキストを z-base-32 にするには「エンコード」を、z-base-32 をテキストに戻すには「デコード」を選択します。
- 「種類」は z-base-32 のままにします。この形式はパディングを使わないため、「パディング」がオフになっていることを確認してください。
- テキストを入力または貼り付けるか、ファイルを開きます。結果は入力に合わせてリアルタイムに更新されます。
- 結果をコピーするか、ファイルとしてダウンロードします。
z-base-32 とは
z-base-32 は、人が読み書きしたり口頭で伝えたりしやすいように Zooko Wilcox-O'Hearn が設計した Base32 エンコード方式です。仕組みは RFC 4648 の Base32 と同じで、1 文字が 5 ビットを表し、5 バイトが 8 文字になります。特徴はそのアルファベットにあります。
ybndrfg8ejkmcpqxot1uwisza345h769
すべて小文字で、o、z、1、u と見間違えやすい 0、2、l、v を除いています。文字の順序も並べ替えられているため、z-base-32 の出力は同じバイト列の標準 Base32 とはまったく異なり、RFC 4648 のデコーダーでは読み取れません。
パディングはなく、データの長さは文字列の長さから決まります。仕様上は、双方が長さについて合意していれば、バイト単位に収まらないビット列もエンコードできますが、このツールは常にバイト単位で処理します。
z-base-32 の用途
- OpenPGP Web Key Directory(WKD)。鍵を決まった URL で公開するために、メールアドレスのローカル部を小文字にして SHA-1 でハッシュ化し、20 バイトのハッシュを z-base-32 でエンコードして 32 文字のファイル名にします。
- ZRTP。通話する 2 人が読み上げて中間者攻撃を検出するための短い認証文字列(SAS)は、z-base-32 のアルファベットを使った Base32 で表すことができます(RFC 6189)。
- Lightning Network。lnd や Core Lightning などのノードソフトウェアは、署名済みメッセージを z-base-32 の文字列で返します。
人が扱いやすいほかの形式としては、数字の順序を保ち入力ミスに寛容な Crockford Base32 や、より短いものの大文字と小文字を区別する Base58 と比較してみてください。
仕様
| 使用文字 | ybndrfg8ejkmcpqxot1uwisza345h769 |
|---|---|
| 出力サイズ | 5 バイトごとに 8 文字(160%) |
| パディング | なし |
| 規格 | z-base-32(Zooko Wilcox-O'Hearn) |
| 大文字と小文字の区別 | なし |
エンコード例
| 入力 (UTF-8) | 出力 |
|---|---|
Hello, World! | jb1sa5dxfoofq551pt1nn |
Base64.is | ejozg3jsgozg1ha |
你好 | h164b3pfzw |
よくある質問
z-base-32 は Base32 と同じですか?
いいえ。RFC 4648 の Base32 と同じ 5 ビット単位のグループ分けを使いますが、アルファベットが異なり、順序も並べ替えられていて、パディングもありません。z-base-32 の文字列は z-base-32 のデコーダーでデコードする必要があります。
z-base-32 は大文字と小文字を区別しますか?
アルファベットは小文字で、出力も常に小文字です。このデコーダーは大文字の入力も受け付け、デコード前に小文字に変換します。
文字列が = で終わっている場合はどうなりますか?
z-base-32 はパディングを使いませんが、文字列が = で終わっている場合、デコーダーはそれを無視します。
WKD ハッシュを得るにはどうすればよいですか?
--with-wkd-hash オプションを使えば、WKD ハッシュを直接表示することもできます。