ROT5数字暗号
0123456789は5678901234になります。各数字が10個の輪の上で5つ進み、文字や空白、ハイフンはそのままです。もう一度かけると元の数字に戻ります。デモで電話番号や注文番号を隠すのに便利で、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- 0123456789
- 結果
- 5678901234
- 入力
- 0123456789
- テキスト
- 5678901234
- 回転した数字数
- 10
ROT5数字暗号は、古典的な文字回転ROT13の数値版です。ASCII数字のゼロから九までを十桁の円上で五桁ずつずらし、ゼロは五、一は六、二は七、三は八、四は九になり、数字アルファベットの後半は反対側へ写像されます。五は十の半分なので、同じ置換を二回適用すると元の文字列に戻り、符号化と復号は同一操作です。文字・句読点・空白・非数字のUnicode符号点はそのまま通り、周囲の文章を触らずに電話番号・注文ID・混在テキスト内のPIN・CTF風パズル文字列を軽く難読化するのに適しています。空でない任意のテキストを入力すると、変換後の文字列、回転した数字の個数、そのまま残した非数字の個数、短い状態メッセージが返ります。
ROT5が数字にすることと触れないもの
ROT5は、古典的な暗号パズルと軽いテキスト玩具で使われるモジュラ換字暗号の一族です。アルファベットはASCII数字のゼロから九の十個です。数値nがゼロから九の任意の数字文字dについて、暗号は(n+五)mod十の単一文字を出します。
この表は固定で公開されています。ゼロ→五、一→六、二→七、三→八、四→九、五→ゼロ、六→一、七→二、八→三、九→四。シフトがアルファベットサイズの半分なので写像は対合—各記号は自己逆—で、別の復号モードも秘密鍵もありません。
ASCII数字でないものはすべてそのままコピーされます。大文字小文字の文字、空白、電話番号のハイフン、通貨記号、改行、マルチバイトUnicodeは残ります。全角数字やASCII範囲外の他の数体系は書き換えられず、符号点四十八から五十七の十文字だけが参加します。
resultを入力として再送すると、存在した各数字について元テキストが復元され、教師とCTF作者がROT5実装を検証する標準の往復確認になります。
実用のヒント、制限、関連検索
周囲の文脈が重要なときは、句読点を先に除去せず混在文字列全体を送ってください。五五五ハイフン〇一九九のような電話形式はハイフンと空白を保ち数字だけが回転し、パズル記事や軽い伏せ字デモが通常求める動作です。ソースが文字だけでもツールは成功し、回転した数字ゼロを報告します—非数字上の恒等経路は暗号定義の一部なのでエラーではありません。
モードフラグはありません。授業では例を対にします。本ランディングはROT5暗号・数字ロテーター・オンライン数値ROTツールを探す人向けであり、文字用ROT13でも任意シフトの一般カエサルでもBase64でも、動機ある攻撃者に対する秘密を与える暗号化でもありません。
デモ・ワークシート・パズル手順に透明で可逆な数字のみの置換が必要なときは本機能を優先し、文字回転が必要なら文字向けROT13ツールを使ってください。
活用例
CTFと授業の暗号ドリル
生徒はチャレンジ文の数字列にROT5を適用し、より難しい古典暗号へ進む前に対合性を検証するためにもう一度適用します。
デモでのIDの軽い難読化
製品デモとスクリーンショットは注文番号やサンプル電話数字をROT5に置き換えつつ、区切りとラベルは観客に読みやすく保ちます。
よくある質問
ROT5とは何ですか?
ROT5は各ASCII数字0–9を五位置、mod 10で回転します。ゼロは五、一は六…、五はゼロに戻ります。非数字はそのままです。
ROT5を復号するには?
ROT5をもう一度適用します。写像は対合で、同じ変換を二回実行すると元の数字が復元されます。
ROT5は文字を変えますか?
いいえ。 書き換えられるのはASCII数字0–9だけです。文字・空白・句読点・他のUnicodeはそのまま通ります。
空入力だとどうなりますか?
空白欄が成功した空結果と扱われないよう、空でない文字列が必須です。
全角数字も回転しますか?
いいえ。対象は半角の0から9の10文字だけです。全角数字やほかの数字の表記はそのまま残るので、全角で書かれた番号を変換したい場合は、先に半角に直してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/rot5 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Phone: 555-0199"}'const res = await fetch("https://api.kit.forhosting.com/enc/rot5", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Phone: 555-0199"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rot5",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Phone: 555-0199"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rot5", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Phone: 555-0199"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Phone: 555-0199"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rot5", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Phone: 555-0199"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rot5",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
空入力は明確なinvalid_inputエラーで拒否され、呼び出し元が空白欄を成功した無操作として扱わないようにします。経路は純粋で決定的な文字演算—ネットワークなし・乱数シードなし・壁時計依存なし—なので、無料のブラウザ実行器とプリペイドAPIは毎回同じJSONを返します。
ROT5が数字にすることと触れないもの
空文字列はここでの有効な恒等変換ではなく、APIはinvalid_inputで拒否し、欠落したフォーム欄が静かに成功に見える空文字列を生まないようにします。
APIの呼び出し方と返る内容
文字列は空でなく、公開された文字上限の十万文字を超えてはいけません。必須の文字列フィールド text を含む JSON 本体を送ってください。solverが受け付けるよくある別名には input、value、data、message、s があり、自由テキストのペイロードを既に付けている既存クライアントがキー名を変えずに本機能を呼べます。成功時の応答は元のペイロードを input 下にエコーし、下流パイプラインの都合で result と text の両方をROT5変換後文字列に設定し、再写像されたASCII数字の個数 digits_rotated、変更なしの文字数 non_digits、出力文字数 length(常に入力長と等しい)、短い記憶句 digit arrow open parenthesis digit plus five close parenthesis mod ten の formula、何桁動いたかの英語一行要約 message を報告します。検証失敗—欠落フィールド、型違い、空文字列、過大ペイロード—は invalid_input を返し、課金されません。料金は成功リクエストあたり定額 $0.002、単位 item、限界単価ゼロです。
実用のヒント、制限、関連検索
復号は前回の result で同じエンドポイントを再度呼ぶだけです。Workerメモリを抑えるため、ペイロードは公開最大長未満に保ってください。数字列ゼロ一二三四五六七八九は五六七八九〇一二三四になり、ハイフン付き電話風文字列は句読点保存を示し、空文字列は硬い invalid_input 経路を示します。invalid_input を返す失敗タスクはプリペイド残高を消費せず、クライアントが空欄を探る探索スクリプトを安く保てます。往復確認は容易です。 resultを戻して元と等しいことを主張し、非数字だけの文字列では result と input が同一で digits_rotated がゼロのままであることを確認してください。
連携の活用例
数字変換のパイプライン単体テスト
テストスイートは既知の数字文字列を生成し、固定の (n+5) mod 10 写像を断言し、空入力の invalid_input ケースを負のfixtureとして含めます。
技術的な質問
ROT5数字暗号は無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは成功リクエストごとに $0.002 のプリペイドKIT残高を使い、失敗タスクは課金されません。