例えば slack で言いづらいことを暗号化(難読化)して分かる奴だけに伝えたい時ってありますよね?
(だったらDMしろよ!という声が聞こえなくも無いですが・・・)

るあてっはでテムガに
らうのータニモはギカ
のえくづでそ

これは単に rev | fold しただけなのでバレバレですが、
もうちょっと簡単に難読化したいですよね?

嚮囑囈嘲嘛圄壓壙圉坡奢夥倬圄嗾唳囹壑埀奕囑圉囃囎嗔喙

何と nkf -r で出来ます!

$ echo 'そでづくえのカギはモニターのうらにガムテではってある' | nkf -r
嚮囑囈嘲嘛圄壓壙圉坡奢夥倬圄嗾唳囹壑埀奕囑圉囃囎嗔喙

$ echo 'そでづくえのカギはモニターのうらにガムテではってある' | nkf -r | nkf -r
そでづくえのカギはモニターのうらにガムテではってある

漢字は変換時に欠落することがあるので、ひらがな、カタナカのみがお勧めです
ぜひスラッシュコマンドに登録しておきましょう(←しない)

余談

rot13は普通 a-zA-Z の変換を指しますよね

# マルチバイト文字はそのまま
$ python -c 'import codecs; print(codecs.encode("海賊王にoreはなる!", "rot-13"))'
海賊王にberはなる!

で、たまたま ROT13 - Qiita を眺めてたところ
nkf -r と書いてあるのを見つけ、何このオプションと思ったら

$ man nkf | grep -wF -- -r
       -r  ROT13/47 の変換をする。

で、試しにやってみたら

$ echo "海賊王にoreはなる!" | nkf -r
瞋騾疸囹ber圉囮喙!

すげー!
と思ったのも束の間、

# 欠ける例
$ echo 袖机の鍵はモニターの裏にガムテで貼ってある | nkf -r | nkf -r
袖机の鍵はモニターのにガムテでってある

でもほら、ひらがな、カタカナがセーフならいいじゃん、と思いチェックしてみる

# utf-8 でひらがな全部
$ echo -e "\u30"{4..9}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}
぀ ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ ち ぢ っ つ づ て で と ど な に ぬ ね の は ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み む め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ ゐ ゑ を ん ゔ ゕ ゖ ゗ ゘ ゙ ゚ ゛ ゜ ゝ ゞ ゟ

# 2回変換して元に戻るかチェック
$ diff -u \
<(echo -e "\u30"{4..9}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}| xargs -n1) \
<(echo -e "\u30"{4..9}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f} | nkf -r | nkf -r | xargs -n1)

(出力無し)

割愛しますが、カタカナも元に戻りました

nkfのソースだとこの辺あたりだと思います

$ git clone https://scm.osdn.net/gitroot/nkf/nkf.git
$ cd nkf/
$ grep -rinw rot13
(略)
nkf.c:4156:#define rot13(c)  ( \
nkf.c:4177:     c1 = rot13(c1);
(略)

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS