[1] [[ROT13]]は ASCII の英字にしか効果がなくて、仮名漢字混じりの日本語文 にかけても楽しくないわけですわ。 そこで、 1987年に、 JUNET のニュース組 fj.kanji とかで議論されて、 ROT13/47 てのが出来上がりました(らしいです)。 [2] >>1 そん時の重要な記事を pick up して に置いときました。 その更に重要な部分を抜粋すると、 > アスキー/ローマ字コードは, エスケープ部分を除いて rot13します. JIS漢字コードは エスケープ部分を除いて rot47します. > JIS以外の漢字コードをROT13/47する場合は,JISに変換した後に 上記の操作を行う. これ以外はROT13/47ではない. なお、この当時の JUNET の文字コードは今の [[ISO-2022-JP]] と同じです。 [CODE[ESC ( H]] ([[瑞典名前文字]]) は既に使われていません。 [4] ROT13/47 は、暗号化と復号の別がありません。 つまり、二度暗号化すれば元に戻ります。 [7] なお、 ROT13/47 策定の過程で、文字を1つ分だけずらす ROT1 (を漢字に適用したもの) が出てきてます。 あまり面白くないということで没になりました。 [8] 仕様確定後すぐ、 [[nkf]] に実装されてます。 (今でも使えます。) [13] hypnotherapy affiliate programs [url=http://kmis.grf.hr/user/view.php?id=400&course=1 ]hypnotherapy scripts[/url] hypnotherapy cum ([[hypnotherapy nanaimo]] [ronlzg@yey.com]) [[#comment]] * 実装について [3] [[C]] の場合 [PRE[ rotate47(c) char c; { if ((c >= '!')&&(c <= 'O')) return c+47; if ((c >= 'P')&&(c <= '~')) return c-47; return c; } ]PRE] [5] [[perl]] の場合 (このままでは使い物にならない。参考まで。) [PRE[ $c =~ tr/\x21-\x4F\x50-\x7E/\x50-\x7E\x21-\x4F/; ]PRE] [6] 現代的には実装は、場合によっては厄介かもしれません。 一度 Unicode に変換されてしまってたら、復号は困難なことも 少なくないでしょう。 (1978年版または1983年版の JIS 漢字コードなので、 Unicode に対応しない空き区点位置が一杯あります。) (でも大抵は、第1水準漢字が第2水準漢字に化けるだけ であって大丈夫なのかもしれませんが。) いずれにしろ、 Unicode 化されたものを ROT47 するには 表を使って変換するしかないです。止めた方が良いでしょう。 [9] 現代的には、 1990/1997年版とか2000年版の JIS 漢字コード、 あるいは Unicode の文字列を暗号化したいところですが、 上記で定義されたもの「以外はROT13/47でない」って 言ってますからねえ。 ROT13/47 の拡張てことにします? それもねぇ・・・。 「JIS漢字コード」を拡大解釈して、新しい版の JIS 漢字コード も含まれてた(!)ことにしちまうのがいい鴨。 [[#comment]] * 識別 [10] [[MIME]] とかで使う時の[[媒体型]]で、 「text/x-rot13-47」 とか 「text/x-rot13-47-48」 が使われたりします (でも [CODE[-48]] て何?)。 けど、それは何か違うと思うのね。 text/html の ROT13/47 はどーなんですか、って。 媒体型は text/* のままで、それに x-rot パラメーターを定義して 使うのが良いと。 (See [[x-rotパラメーター]]) [DEL[ > Content-Type: text/html; x-rot="13/47" って。 ]DEL] (でも、要素名も ROT13 で化けたらそれは HTML じゃないよなー。 要素の属性とか内容だけ化かす? それはそれで復号が面倒。 HTML に ROT13/47 なんて、やめましょーよ。) (それとも、化けてなんぼだから、気にせず要素名とかも化かすのかな?) [11] text/* 以外の媒体型に適用するのは、絶対に止めた方が良いと思われます。 (だから、 Content-Transfer-Encoding や Content-Encoding にするべきではない。) [DEL[ 指定方法は冗長だけど、 > Content-Type: text/plain; x-rot="rot13/47" にしませう。 ]DEL] [12] [[拡張子]]で内容を判別する環境では、 .rot が使われることがあるみたい。 [[#comment]] * メモ