RubyでLeet

第5回北海道情報セキュリティ勉強会のTessyさんのセッションの中で「Unl33t」という言葉が出てきました。つまりLeet変換されたものを戻すことなのですが、これをちょっとRubyでやってみよう...と思ったら、力技になりましたorz きっともっとエレガントに書けるんだと思うんだけど、とりあえず書いちゃう。何か良い方法があったら教えてください。

#!/usr/bin/ruby -Ku

class Array
  def choice
    at(rand(size))
  end
end

keyword = ARGV[0].dup

keyword.gsub!(/A|a/,['4','/\\','@','/-\\','^','aye','(L','Д'].choice)
keyword.gsub!(/B|b/,['3','P>','|:','!3','(3','/3',')3','|-]','j3'].choice)
keyword.gsub!(/C|c/,['[','<','('].choice)
keyword.gsub!(/D|d/,[')','(|','|o','[)','I>','|>','T)','I7','cl','|}','|]'].choice)
keyword.gsub!(/E|e/,['=-'].choice)
keyword.gsub!(/F|f/,['=','|#','ph','/=','v'].choice)
keyword.gsub!(/G|g/,['6','&','(_+','9','C-','gee','(?,','[,','{,','<-','(.'].choice)
keyword.gsub!(/H|h/,['|','|-|',']~[','}{','!-!','1-1','\\-/','I+I','}-{'].choice)
keyword.gsub!(/I|i/,['eye','3y3','][',']','/me'].choice)
keyword.gsub!(/J|j/,['_/','</','_]','(/'].choice)
keyword.gsub!(/K|k/,['<','|{',']{','|X'].choice)
keyword.gsub!(/L|l/,['|_','el','[]_','[_'].choice)
keyword.gsub!(/M|m/,['v|','[V]','{V}','/V\\','em','AA','|\\/|','/\\/\\','(u)','(V)','(\\/)','/|\\','^^','/|/|','//\\','|\\|\\',']\\/['].choice)
keyword.gsub!(/N|n/,['\\|','/\\/','[\\]','<\\>','{\\}','[]\\','//','[]','/V','1V','И','^'].choice)
keyword.gsub!(/O|o/,['0','()','oh','[]','p','<>'].choice)
keyword.gsub!(/P|p/,['*','|o','|?','|^(o)','|>','|"','9','[]D','|7'].choice)
keyword.gsub!(/Q|q/,['&'].choice)
keyword.gsub!(/R|r/,['`','|~','|?','/2','|^','lz','|9','2','12','[z','.-','|2','|-'].choice)
keyword.gsub!(/S|s/,['5','$','z','§','ehs','es','2'].choice)
keyword.gsub!(/T|t/,['-','][','†','"|"'].choice)
keyword.gsub!(/U|u/,['_|','v','L|'].choice)
keyword.gsub!(/V|v/,['/','\\|'].choice)
keyword.gsub!(/W|w/,['/','\\_|_/','\\_:_/','Ш','uu','2u','\\\\//\\\\//','ω'].choice)
keyword.gsub!(/X|x/,['><','Ж','}{','ecks','×','?',')(','][','}{'].choice)
keyword.gsub!(/Y|y/,['/'].choice)
keyword.gsub!(/Z|z/,['_'].choice)

puts keyword

exit
実行してみたらこんな感じ。
$ ./leet.rb "Hack the Planet."
}-{@(< -}-{=- |^(o)[_@И=--.
難読化だなぁ。これを使って何か面白いものが作れないか考えてみたいと思います。

このブログの人気の投稿

転職のお知らせ

40代の減量戦略 〜体重-14kg、体脂肪率-12%を実現した具体的な方法〜

45歳になりました