1 """
   2 Mangle words so they look somehwat like "obfuscated text".
   3 
   4 The strange think is that human brains still can read that -
   5 but not the machines at <insert your favourite secret service here>.
   6 
   7 It could also be used to prevent access to internet sites by robots.
   8 It has the advantage of not needing a graphical display.
   9 
  10 Can braille users read it to?
  11 
  12 Usage:
  13 
  14 this is a filter - it reads input from stdin and outputs the result on stdout
  15 
  16 Sample Input:
  17 
  18 Gemäß einer Studie einer englischen Universität ist es nicht wichtig
  19 in welcher Reihenfolge die Buchstaben in einem Wort sind, das Einzige,
  20 was wichtig ist, ist dass der erste und der letzte Buchstabe an der
  21 richtigen Position sind. Der Rest kann ein totaler Blödsinn sein,
  22 trotzdem kann man ihn ohne Probleme lesen.
  23 
  24 Das ist so, weil wir nicht jeden Buchstaben einzeln lesen, sondern das
  25 Wort als gesamtes. Das geht wirklich!
  26 
  27 Sample output:
  28 
  29 Gmäeß enier Stduie eenir ecgshilenn Uvrnäiestit ist es nciht withicg in wceehlr
  30 Rleohfinege die Btachesubn in eniem Wort sdin, das Eiignze, was witcihg ist, ist
  31 dsas der etsre und der ltetze Busthcabe an der rceihtgin Pitosoin sndi. Der
  32 Rset knan ein tlotear Bliösndn snie, trdeoztm knan man ihn ohne Pmbolree lenes. Das
  33 ist so, weil wir nihct jeden Beusbctahn enelzin lesen, sorendn das Wrot als gmstaees.
  34 Das ghet whiclkri!
  35 """
  36 
  37 import random, sys
  38 
  39 text = sys.stdin.read()
  40 words = text.split()
  41 randomizer = random.Random()
  42 
  43 for i in range(0, len(words)):
  44     word = words[i]
  45     middle = list(word[1:-1])
  46     randomizer.shuffle(middle)
  47     word = word[0] + ''.join(middle) + word[-1]
  48     words[i] = word
  49 
  50 sys.stdout.write(' '.join(words))

Python/ObfuscatedText (zuletzt geändert am 2007-12-23 22:49:06 durch localhost)