Ook! エンコード/デコード
Hiは決まった語の組だけでできた1069文字のOok!プログラムになり、1組がBrainfuckの1命令に当たります。プログラムを貼り付ければ実行して出力を読め、パズル用の短い文も符号化できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hi
- 計算モード
- encode
- エンコード
- ook
- 入力の長さ
- 2
- 出力の長さ
- 1,069
- コマンド数
- 107
この Ook! エンコーダ/デコーダは、Latin-1 の平文を有効な Ook!難解プログラムへ変換し、Ook!プログラムを実行して印刷されるテキストを復元します。Ook! は Brainfuck のユーモアある方言で、命令集合は Ook.・Ook! ・Ook? の三トークンだけで書かれ、常に固定の対として古典的な八つの Brainfuck 命令と一対一対応します。
Ook! とは何か、このツールが返すもの
Ook! は、各命令が Ook.・Ook! ・Ook? というトークンから成る二語句になる Brainfuck の冗談方言として設計されました。語彙はこの三トークンだけであり、Ook に付く句読点が意味を持ち、Ook.
は Ook! や Ook?とは異なります。 八つの Brainfuck 操作はそれぞれちょうど一つの順序付き対に写像されます。ポインタ右は Ook. Ook?、左は Ook?
Ook.、増分は Ook.Ook.、減分は Ook!Ook!、出力は Ook!
Ook.、入力は Ook.Ook!、ループ開始は Ook!Ook?、ループ終了は Ook?
三トークン文法とその Brainfuck 相当の符号化・実行経路だけに答えます。
授業やパズルでのOok!の使いどころ
開発者と教育者は、難解言語の概説、Brainfuck を冗談語彙の裏に隠す capture-the-flag のウォームアップ、丁寧に写像すれば二トークン形式でもほぼチューリング的な教材テープを実装できることを示す軽いデモで Ook!に出会います。 フロントエンドチームは encode と decode を並べ、長い Ook.
Ook. 対の流れが印刷前の一連の増分であることを学習者に見せ、独自表を発明する必要をなくせます。品質技術者は契約テスト用に決定的な encode/decode 対を生成し、Ook 対応を称するミドルウェアが末尾の未対トークンを黙って落としたり、Ook?Ook? を合法命令として受け入れたりできないようにします。
大会運営は、不完全な対を埋めたり大文字小文字を誤って扱ったりする不透明な Web 玩具に頼らず、短い英語句の解答キーを事前計算します。学習者が Ook プログラムを貼り付け、UI が文書化された三トークン文法の下で復元された印刷ストリームを示す必要がある製品・教育ツールでも使われます。
無料で決定的なテキストツールの小さな実験室を組むときは他の古典・冗談系符号化ヘルパーと組み合わせ、本物の秘密が関わるときは Ook!を現代の認証付き暗号の代用にしないでください。
活用例
難解言語と CTF の練習
短いメッセージを Ook! プログラムに符号化し、授業プリント・esolang 概説・capture-the-flag のウォームアップ向けにトークン列を復号します。
Brainfuck 方言のデモ
Ook. / Ook! / Ook? の三トークン文法を、八つの Brainfuck 命令と一対一対応する順序付き対として示します。
よくある質問
Ook! プログラムをどう復号しますか?
mode を省略すると既定はエンコードです。トークンは Ook. / Ook!/ Ook? の完全な対でなければなりません。
トークン対が不正な場合は?
奇数個、Ook? Ook?のような未知の順序付き対、非トークンのゴミ、閉じないループは推測せず拒否されます。
どの文字を符号化できますか?
UTF-16 コード単位が 255 を超える文字は、プログラム長を予測可能に保つため拒否されます。
Ook! は本物の秘密に安全ですか?
いいえ。 公開された固定文法の Brainfuck 冗談方言です。本当の機密には AES-GCM などの現代の認証付き暗号を使ってください。
Ook!プログラムが長くなるのはなぜですか?
1つのセルに1ずつ足して各文字に届かせてから出力するためです。Hiだけでも107命令、1069文字のプログラムになり、その大半は同じ組の繰り返しです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/ook-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/ook-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ook-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ook-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ook-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hi"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ook_encode",
"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 で拒否し、残りを Brainfuck に写像して帯域とステップ上限付きで実行します。難解言語の授業、CTF のウォームアップ、可逆なデモにはブラウザで無料で使い、再現可能な Ook 変換が必要なパイプラインでは成功リクエストごとに API を $0.002 で呼び出してください。
Ook! とは何か、このツールが返すもの
Ook! です。 本エンドポイントは通常のテキストを、解釈時にそのテキストを印刷する Ook プログラムとして符号化し、整形式プログラムを解釈して出力文字を集めることで復号します。JSON 応答には、プログラムまたは復元文字列の result、ook に固定の encoding、encode または decode の mode、送受信した生文字列の input_length と output_length、生成または実行した Brainfuck 命令数の command_count、教材とデバッグに有用な中間命令列 brainfuck、三トークン対ルールを再述する formula が常に含まれます。Morse・Base64・素の Brainfuck 専用モードへの黙ったフォールバックはなく、選んだ方向でペイロードが有効であるか、invalid_input で失敗するかのどちらかです。古典暗号、バイナリダンプ、現代の認証付き暗号が必要な場合は専用エンドポイントを使い、このランディングは esolang の章が既に説明する Ook!
text と mode の読み方、不正な対が失敗する理由
エンコードでは各文字が 0 から 255 の Latin-1 コード単位でなければならず、実用的なプログラム長のために長さ上限があり、エンジンは単一セルの差分プログラムを組み立てます。直前のセル値から次の文字コードへ増減し、印刷命令を出し、各 Brainfuck 命令を空白区切りの Ook 対へ翻訳します。デコードでは三つの合法な語尾を持つ Ook トークンを走査し、トークン間に許されるのは空白だけです。八つの合法命令でない順序付き対も、スキップせず malformed pair として失敗します。閉じないループ括弧、固定テープ外へのポインタ移動、stdin を読む入力命令、ステップ上限を超える暴走ループも拒否されます。推奨ペイロード欄は、メッセージまたは Ook ソース用の text と、encode または decode 用の任意の mode です。text は input・value・s・message・plaintext・ciphertext・program などの別名を受け付け、フォームや SDK クライアントが既存の列名を再利用できます。mode を省略すると既定は encode で、encode には enc・encrypt・e・to_ook、decode には dec・decrypt・d・from_ook・run などの短い別名も受け付け、それ以外の文字列は検証に失敗します。トークン数が奇数なら対が途中で切れていることを意味し、常に malformed token pairs の明示メッセージ付き invalid_input を上げます。欠落・空の text、非文字列型、エンコード時の 255 超のコード単位、未知の mode も invalid_input です。同一の数学結果を自動パイプラインで要するときは、本ページの無料ブラウザ実行と有料 API を組み合わせてください。無効入力は invalid_input を返し課金されず、成功変換は固定の item 価格のまま検証を安価に保てます。
授業・パズル・テスト fixture における Ook! の位置づけ
バックエンドは、学生が有効な対を組み立て直して次段を解錠するパズル API や教材サンドボックス向けに挑戦文字列を事前計算します。本ページでは作業はすべてブラウザ内で走り、API では成功照会ごとに $0.002 で、失敗した検証は課金されず、応答後は何も保存しません。無料の対話的探索と同一結果の有料 API という分け方は KIT の tier A カタログ全体と一致し、教室デモから自動パイプラインへ結果を変えずに移れます。
連携の活用例
決定的な CI fixture
単体テスト・golden ファイル・契約検査向けに、再現可能な Ook プログラムと印刷平文の対を生成します。
技術的な質問
Ook! エンコーダの料金は?
このページではブラウザ内で無料です。API では成功したリクエストが $0.002、無効な入力は課金されません。