2015年6月25日木曜日

150625

Ruby


ROT13 と ROT47

変換された文字列をもう一度変換すると、元の文字列に戻るか試してみる。

str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
# ROT13
p str.tr("A-Za-z", "N-ZA-Mn-za-m")
p str.tr("A-Za-z", "N-ZA-Mn-za-m").tr("A-Za-z", "N-ZA-Mn-za-m")
p str.tr("\x41-\x5a\x61-\x7a", "\x4e-\x5a\x41-\x4d\x6e-\x7a\x61-\x6d")
p str.tr("\x41-\x5a\x61-\x7a", "\x4e-\x5a\x41-\x4d\x6e-\x7a\x61-\x6d").tr("\x41-\x5a\x61-\x7a", "\x4e-\x5a\x41-\x4d\x6e-\x7a\x61-\x6d")
# ROT47
p str.tr("\x21-\x7e", "\x50-\x7e\x21-\x4f")
p str.tr("\x21-\x7e", "\x50-\x7e\x21-\x4f").tr("\x21-\x7e", "\x50-\x7e\x21-\x4f")

出力結果
"NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
"NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
"pqrstuvwxyz{|}~!\"\#$%&'()*+23456789:;<=>?@ABCDEFGHIJK_`abcdefgh"
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。