columnar転置暗号
鍵ZEBRASでWEAREDISCOVEREDFLEEATONCEを暗号化するとEVLNACDTESEAROFODEECWIREEになります。6列の行に書き込み、鍵のアルファベット順に列ごとに読み出す仕組みで、同じ鍵で復号できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- WEAREDISCOVEREDFLEEATONCE
- 鍵
- ZEBRAS
- 計算モード
- encrypt
- 結果
- EVLNACDTESEAROFODEECWIREE
- エンコーディング
- columnar
- 鍵の長さ
- 6
- 列の順序
- 4, 2, 1, 3, 5, 0
このcolumnar転置暗号ツールは、文字を置換するのではなくキーワードの下で並べ替えることでテキストを暗号化・復号します。メッセージ、空でない鍵、任意のモードを入力すると、エンジンは鍵の長さを幅とするグリッドを作り、テキストを左から右、上から下に書き込み、鍵の文字をソートして得られた順序で各列を上から下に読みます。復号はそのレイアウトを逆にするため、同じキーワードで元の文字列がビット単位で正確に復元されます。すべての文字が一緒に移動します。代表的な検証例として、鍵ZEBRASの下でのWEAREDISCOVEREDFLEEATONCEは、同じキーワードで復号すると元に戻るよく知られた暗号文になります。
columnar転置とは何か、そしてこのツールが返す内容
columnar転置は古典的な並べ替え暗号です。秘密は文字の置換テーブルではなく列の順序です。キーワードは、グリッドが持つ列の数と、暗号化時にそれらの列が読まれる順序の両方を決めます。
平文の文字はグリッドに行ごとに書き込まれます。最後の行が不完全な場合、左側の列は単に右側の列より1文字多く保持し、入力自体に含めない限り強制的なパディング文字を使わない通常の長さ保存の教科書規則に一致します。暗号化はキーワードでソートされた順序で列を連結します。
復号は、総文字数と鍵の幅から導出される同じ高さを使って暗号文をそれらの列に書き戻し、その上でグリッドを行ごとに読んで元の文字列を復元します。同点の処理は安定しています。2つの鍵の文字が等しい場合、左の列が先に取られるため、繰り返される文字があいまいな順序を生むことはありません。
このページは常にその固定規則を適用し、ルート転置、レールフェンス、置換暗号にサイレントに切り替わることは決してありません。ストリーミング経路も、Vigenèreやサイレントなフォールバックもありません。
columnar転置がレッスン・パズル・テストフィクスチャで役立つ場面
開発者や教育者は、キャプチャー・ザ・フラッグのウォームアップ、古典的な暗号学に関する教科書の章、そしてメッセージの長さが増えるにつれて並べ替えだけでは既知平文攻撃やアナグラム攻撃に対して不十分である理由を示すデモでcolumnar転置に出会います。
フロントエンドチームは、独自のアルファベットを発明することなく、スクリーンショット用にサンプルのフレーズをスクランブルし、同じ鍵の下でdecryptを使って復元できます。そこでは学生がグリッドを再構築して次のステップを解除しなければなりません。
品質エンジニアは、columnar対応を主張するミドルウェアがレールフェンスパターンにサイレントに切り替わったりスペースを落としたりできないよう、契約テストのために決定的な暗号化・復号のペアを生成します。
コンテストの主催者は、大文字のみの出力を強制したり求めていないパディングのX文字を挿入したりする不透明なウェブおもちゃに頼ることなく、手頃な英語のフレーズについて模範解答をあらかじめ計算します。プロダクトや教育向けのツールは、学習者が暗号文を貼り付け、UIが文書化されたキーワードの下で復元された平文を表示しなければならないときにこの変換を使います。
このページでの計算はすべてブラウザ内で完結します。無料で決定的なテキストツールの小さなラボを構築する際は他の古典的な符号化ヘルパーと組み合わせ、columnar転置を現代の認証付き暗号の代用として決して扱わないでください。
活用例
CTFと古典暗号の練習
パズル、教室、キャプチャー・ザ・フラッグのウォームアップ向けに、キーワード順のcolumnarフレーズを暗号化・復号します。
暗号史の授業
強制的なパディングなしに、行書き列読みの並べ替え、安定した繰り返し鍵文字、長さを保つグリッドを実演できます。
よくある質問
columnar式の暗号文をどう復号しますか?
暗号文をtextとして、同じキーワードをkeyとして送信し、modeをdecrypt(またはdec、decode、d)に設定してください。modeを省略した場合、既定は暗号化です。
鍵が空の場合はどうなりますか?
エンジンが少なくとも1つの列を並べられるよう、キーワードは空でない文字列でなければなりません。
スペースと句読点は保持されますか?
はい。 入力のすべての文字が並べ替えられます。何も取り除かれず、大文字小文字も変換されません。スペースと記号は文字とともに移動します。
columnar転置は本物の秘密にとって安全ですか?
いいえ。 これは古典的な教育用暗号です。本物の機密性にはAES-GCMのような現代の認証付き暗号を使ってください。
鍵に同じ文字が複数ある場合はどうなりますか?
順番はあいまいになりません。鍵の中に同じ文字が2つあるときは、左側の列が先に読まれます。そのため、文字がくり返されても列を読む順番は1通りに決まります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/columnar \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"WEAREDISCOVEREDFLEEATONCE","key":"ZEBRAS"}'const res = await fetch("https://api.kit.forhosting.com/enc/columnar", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "WEAREDISCOVEREDFLEEATONCE",
"key": "ZEBRAS"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/columnar",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "WEAREDISCOVEREDFLEEATONCE",
"key": "ZEBRAS"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/columnar", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"WEAREDISCOVEREDFLEEATONCE","key":"ZEBRAS"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"WEAREDISCOVEREDFLEEATONCE","key":"ZEBRAS"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/columnar", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "WEAREDISCOVEREDFLEEATONCE",
"key": "ZEBRAS"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.columnar",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
スペース、数字、句読点は列の並びの中で位置を保ち、決して取り除かれないため、フレーズやCTFのペイロードは教科書のワークシートに忠実であり続けます。暗号史の授業、パズルの設計、可逆な実習デモにはブラウザで無料にご利用いただき、パイプラインが再現可能なcolumnar変換を必要とする場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
columnar転置とは何か、そしてこのツールが返す内容
JSONレスポンスには、並べ替えられた文字列を表すresult、columnarに固定されたencoding、encryptまたはdecryptに設定されたmode、指定したキーワードをエコーするkey、key_length、読み取り順序でのゼロ始まりの元のインデックスを表すcolumn_order、変換が純粋な置換であるため常に一致するinput_lengthとoutput_length、文書化やテストのために行書き列読みの契約を再度述べる式の文字列が含まれます。空でないtextと空でないkeyを指定するか、そうでなければinvalid_inputでリクエストが失敗するかのいずれかです。多表式シフト、モールス信号、現代の暗号が必要な場合はそれぞれの専用エンドポイントをご利用ください。このランディングページは、暗号史の章やCTFのウォームアップがすでに説明している古典的なcolumnarキーワード契約のみに答えます。
テキスト・鍵・モードの読み取り方法と結果を再現可能に保つ仕組み
空でない文字列全体が列を定義し、順序付けはA-Zのみに絞り込むのではなくUnicode文字の比較を使うため、数字や記号を含めればそれらも含まれます。modeは省略時にencryptが既定となり、encryptにはenc、encode、e、decryptにはdec、decode、dといった短い別名も受け付けます。それ以外の文字列は検証に失敗します。優先されるペイロードフィールドは、メッセージを表すtext、キーワードを表すkey、encryptまたはdecryptを表す任意のmodeです。textはinput、value、s、message、plaintext、ciphertextといった別名を受け付けるため、フォームやSDKクライアントは呼び出し箇所を書き換えることなく既存のカラム名を再利用できます。keyはkeyword、k、password、passphraseを受け付けます。空の鍵または鍵の欠落は、列を並べるには空でないキーワードが必要であることを示す明確なメッセージとともにinvalid_inputで拒否されます。textの欠落、空のtext、文字列以外の型、未知のモードはすべてinvalid_inputを発生させるため、空のフォームが成功した無操作のように見えることはありません。列の順序は鍵から一度だけ計算され、同じ高さの公式が暗号化と復号の両方で使われるため、そのキーワードの下では任意の空でない文字列に対してラウンドトリップが常に元のペイロードを復元します。自動化されたパイプライン内でグリッドの詰め込みを自前で再実装することなく同一の並べ替えが必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせてご利用ください。無効な入力はinvalid_inputを返し課金されないため、検証は安価なままであり、成功した変換は固定の項目価格のままです。
columnar転置がレッスン・パズル・テストフィクスチャで役立つ場面
バックエンドサービスは、パズルAPIや教育用サンドボックス向けの短い課題文字列をエンコードします。API経由では成功した検索1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、教室でのデモから自動化パイプラインへ、並べ替えられた結果を変えることなく移行できます。
連携の活用例
決定的なCIフィクスチャ
ユニットテスト、ゴールデンファイル、契約チェック向けに再現可能なcolumnarの暗号文と平文のペアを生成できます。
技術的な質問
columnar転置ツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。