----- Original Message ----- From: "Matthew Moss" <matthew.moss / gmail.com> To: "ruby-talk ML" <ruby-talk / ruby-lang.org> Sent: Friday, May 16, 2008 11:24 AM Subject: [QUIZ] Obfuscated Email >.. > For your task this week, I ask that you make your own signature such that > displays your email address when run through the Ruby interpreter. The > signature must fit within four lines of no more than 80 characters per > line. > (If you still want to avoid outputting an email address, your script may > produce something else: a phone number, a funny quote, vCard, a poem to > your > love, whatever...) Mine is at the bottom (2 lines). Comment: Same code is used to encode and decode text: def codeco s, i=0 s.gsub(/[$-{]/){%$$<<36+($&[0]-?$)*(%q<<Rj~Th>>[(i+=1)%7]-39)%88} end # Assert: s == codeco(codeco(s,n),n) Knowing this, you can easily create your own obfuscated signature, just encode you text and substitute it in s=q%|..| in signature below, use the same initial i value for encoding and decoding; BRs #!/bin/env ruby s=%q|7gF99i * v]l5CV <{_Z*lKJ`eW?=4Z']Wb| i=6;puts s.gsub(/[$-{]/){%$$<<36+($&[0]-?$)*(%q<<Rj~Th>>[(i+=1)%7]-39)%88}