Leetspeak変換
定番の変換表を使うと、Hello WorldはH3110 W0r1dになります。eは3、lは1、oは0に置き換わり、スペースや句読点はそのまま残ります。逆変換で数字を文字に戻すこともでき、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello World
- 計算モード
- Encode
- 結果
- H3110 W0r1d
- 長さ
- 11
- 置換数
- 6
- アルファベット
- a4 e3 i1 o0 s5 t7 b8 g9 l1 z2 +@$!|
Leetspeak(1337 speakとも呼ばれます)は、ラテン文字を見た目の似た数字や記号に置き換える遊び心のある置換スタイルで、HelloはH3110、eliteは31173になります。このツールは固定の古典的置換表を両方向に適用します。ニックネーム、パズル用文字列、軽い難読化ラベル向けに平文をleetspeakへencodeするか、決定的な逆マップでleet字形を読みやすい文字へdecodeします。空白・句読点・未対応文字はそのまま残るため、文の形は保たれます。modeはencodeまたはdecodeを明示指定するため、スクリプトが変換方向を推測する必要はありません。
古典的leetspeak置換の仕組み
古典的leetspeakは暗号化ではなく、秘密鍵付きの暗号でもありません。ゲーマーのハンドル、フォーラムのニックネーム、パズル文で何十年も使われてきた、選定したラテン文字を数字・記号へ写す固定の文字置換プロファイルです。encode時、各文字は大文字小文字を区別せず表と照合されます。
aは4、bは8、eは3、gは9、iとlは1、oは0、sは5、tは7、zは2になります。その集合外の文字は元の字とケースを保ち、空白・句読点・絵文字・入力に既にある数字はそのまま通過するため、Hello Worldは密な塊ではなくH3110 W0r1dになります。decode時、逆表はそれらの数字と一般的な記号変種を小文字へ写します。
4と@はa、8はb、3はe、9と6はg、1と!はi、|はl、0はo、5と$はs、7と+はt、2はzです。曖昧な字形は決定的に解決され、1は常にi(lではない)へdecodeされるため、二つのクライアントが食い違うことはありません。
乱数シードもネットワーク呼び出しも壁時計タイムスタンプもなく、各ステップは純粋な表引きです。このページはその固定古典プロファイルのみを実装します。複数字形の「ハードコア」パック、ROTやシーザー回転、Base64、創造的な綴りを発明するAI書き換えではありません。
それらは別ツール・別検索意図です。
実務でleetspeakツールが現れる場面
インターネット文化やプログラミングの入門講座では、文字から数字への置換の実装を学生に求めることが多く、信頼できる単一のleetspeakオラクルはencodeとdecodeの両方を必要とする宿題デモや自動採点を加速します。
CTFウォームアップやパズルハントでは、単語と似た数字を混ぜた1337風メッセージが今も隠れ、解く側は一般的な暗号解析スイートではなく、速く予測可能な変換を求めます。サポートやコンテンツチームは、ネタバレ、クイズ答え、製品ニックネーム、内部ラベルを軽くleet風にし、後から言語固有ライブラリなしで逆変換したいことがあります。
回転式暗号、強力な認証付き暗号、Base32やBase64符号化、点字、頻度分析による自動鍵復元が必要な場合は、この固定leetspeakページを過負荷にせず、別の検索意図とランディングとして扱ってください。
活用例
授業でのleet置換デモ
文字から数字への表の動きを示し、宿題と自動採点用にencodeとdecodeの単一の正解経路を提供します。
パズル・CTFの1337文字列
課題文を古典leetspeakにencodeし、またはleet字形を逆変換します。問題セットごとに使い捨てスクリプトを書く必要はありません。
よくある質問
leetspeakとは何ですか?
Leetspeak(1337 speak)はラテン文字を見た目の似た数字・記号に置き換えます(例:a→4、e→3、i→1、o→0、s→5、t→7)。様式的な難読化であり、暗号学的な安全性ではありません。
leetを平文に戻すには?
modeをdecodeに設定します。数字と一般的なleet記号は固定の逆表で小文字に写ります(例:4→a、3→e、1→i)。
空入力だとどうなりますか?
空でないtext文字列が必須で、空白入力は拒否され課金されません。
どの文字が置き換わりますか?
aは4、bは8、eは3、gは9、iとlは1、oは0、sは5、tは7、zは2になります。それ以外の文字や数字、スペース、記号は元のまま残ります。
1を戻すとlではなくiになるのはなぜですか?
変換ではiもlも1になるため、戻すときはどちらかに決める必要があり、常にiを選びます。縦線の記号はlに戻り、2つの環境で結果が食い違うことはありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/leetspeak \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/leetspeak", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/leetspeak",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/leetspeak", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/leetspeak", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hello World"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.leetspeak",
"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エラーで拒否されます。無料のブラウザフォームと有料APIは同一の純関数を共有するため、授業デモ、CTFウォームアップ、自動パイプラインは同じtextとmodeに対して常に同じ出力で一致します。
送信内容と返却内容
modeは任意でencodeまたはdecodeを送れます。省略時の既定はencodeです。検証失敗は前払い残高を消費しません。古典的な確認例は、Hello WorldをH3110 W0r1dへencodeする、31173をelite風の平文へdecodeする、空のtextが変更なしで返らず拒否される、です。変換したいメッセージを含む必須文字列フィールドtextを送ってください。input、value、data、message、plaintext、ciphertext、leetなどの別名も同一フィールドとして受け付けるため、既存のペイロード形をスクリプトで再利用できます。op、operation、directionといった方向の別名や、enc、dec、to_leet、from_leetのような短い値も受け付けます。成功時レスポンスは元のtextを返し、変換後文字列をresult、解決された操作をmode、結果のlength、表に当たった文字数をsubstituted、さらにalphabet、cipher、profileラベルを付け、クライアントが古典leetspeakプロファイルに到達したことを検証できるようにします。text欠落、textが非文字列、空文字列、不明なmode、文書化された上限を超える文字列はinvalid_inputと明確な英語メッセージで失敗します。成功したAPI呼び出しの料金は公開ベースの1件あたり$0.002です。
実務でleetspeakツールが現れる場面
この機能は純parseエンジンのため、API料金は成功1件あたり公開ベースの$0.002で、検証失敗は残高を消費しません。
連携の活用例
ニックネームとラベルの装飾
平文のハンドルやクイズラベルをブラウザでleet形にし、同じAPI契約で読みやすい文字へ戻します。
技術的な質問
テキストをleetspeakに変換するには?
文字列をtextフィールドに入れ、modeをencode(既定)にして送ってください。古典表の文字は置換され、その他の文字はそのまま通過します。
料金はいくらですか?
ブラウザツールは無料でローカル実行です。APIリクエストは前払いKIT残高を成功1件あたり$0.002で使用し、無効入力は課金されません。