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)