Freitag, 21.04.2006
Der Geburtstagsdekoder

Jakobs Torte.
Auf der Postkarte stand:
Lieber Wolfgang!
766F6964206D61696E2829
7B
416C6C657320477574653B
7A756D203B
47656275727473746167213B
7D3B
Viel Spaß beim decodieren
wünschen Dir
Rebekka & Gregor
Selbstredend, dass ich das nicht von Hand machen würde, sondern lieber dreimal so lange damit verbringe, ein cleveres Programm zu schreiben, was es für mich tut:
class BirthdayDecoder
@@encoded = "766F6964206D61696E28297B416C6C657320477574653B7A756D203B47656275727473746167213B7D3B"
def brute_force()
decoded = []
i = 0
while i < @@encoded.length do
char = @@encoded[i..i+1]
decoded << char.to_i(16)
i += 2
end
decoded.pack("c*")
end
def clever()
@@encoded.unpack("a2" * (@@encoded.length / 2)).map { |c| c.to_i(16) }.pack("c*")
end
end
Das Ergebnis ist:
irb(main):001:0> require "gregor"
=> true
irb(main):002:0> puts BirthdayDecoder.new.clever
=> "void main(){Alles Gute;zum ;Geburtstag!;};"
Antworten (1)
- pfleidi:
Die Diskussion ist geschlossen.
Atom 1.0
RSS 1.0
RSS 0.91