> restart: # Verschlüsselte Datei lesen und in txt als Zahlenfolge ablegen. # (Den Dateinamen muß man natürlich anpassen.) > CRYPTFILE:="myfolder/text01.crypt": > # txt:=readbytes( CRYPTFILE, infinity ): # close( CRYPTFILE ): # Anschauen... (Achtung: # bedeutet Kommentar) > #convert(txt,bytes);# # Häufigkeitsanalyse kurzer Texte # Häufigkeit aller Zeichen bestimmen. > n:=table([]): > N := 0: > for a in txt do > if not member([a], {indices(n)}) then n[a]:=0; fi; > n[a] := n[a] + 1; > N := N + 1; > od: # Häufigkeiten als Tabelle ausgeben. # (Entfernt man das Kommentarzeichen, so werden einige Werte bei der # Anzeige übersprungen.) > for i in sort(map(op,[indices(n)])) do > #if n[i]/N<.005 then next; fi; > printf( "%3d (%c): %8.5f%%\n", i, i, 100*n[i]/N ); > od: # So kann man die ASCII-Codes für Buchstaben rauskriegen ... > convert("Abx",bytes); # Platz für Experminte ... > # > > > > > > > > > # So kann man (wenn man alle nötigen Ersetzungen beisammen hat), # den Klartext erhalten und probeweise anzeigen. > klartext:=subs( { 100=57, 10=67 }, txt ): > convert( klartext, bytes ); # Und jetzt noch abspeichern. > writebytes("".CRYPTFILE.".lsg", klartext ); > close("".CRYPTFILE.".lsg"):# # Wenn alles fertig und (hoffentlich) richtig entschlüsselt ist, # bitte diese Datei an crypto-loesungen@math.uni-paderborn.de # schicken. >