Moin,
Vom Geheimdienst inspiriert habe ich einen Caesar Decoder geschrieben.
Er funktioniert zurzeit nur mit Deutscher Sprache und arbeitet relativ zuverlässig. (Man kann beliebige Sprachen per Wörterbuch integrieren)
Die Funktionsweise ist relativ einfach. Da es nur 25 Möglichkeiten der Verschiebung gibt werden alle 25 Erzeugt und anschließend überprüft in welcher Version die meiste Sprache gefunden werden kann. Diese Version ist dann wahrscheinlich die Lösung. Eine Garantie für Funktionalität gibt es natürlich nicht, und wer Dialekt, oder seltsame Wörter verwendet kann den Decoder damit austricksen. (Ihm fehlt dann das entsprechende Wörterbuch).
Viel Spaß damit, und Spioniert bitte unbescholtene Bürger aus
14.07.13: Aufgeräumte Version mit 2 Wörterbüchern. Nur wenn das kleine zu keinem Ergebnis kommt wird das Große verwendet. -> Spart einiges an Zeit.
Skript
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global $aTime[4]
[/autoit] [autoit][/autoit] [autoit]Global $aDeutschGr = StringSplit('MINISTERPRÄSIDENT,INTERNATIONALEN,BUNDESREGIERUNG,AMERIKANISCHEN,BEISPIELSWEISE,ÖFFENTLICHKEIT,ZUSAMMENARBEIT,BUNDESREPUBLIK,INFORMATIONEN,UNTERSTÜTZUNG,ARBEITSPLÄTZE,AMERIKANISCHE,UNTER ANDEREM,VERHANDLUNGEN,VERGANGENHEIT,VERSCHIEDENEN,FRANZÖSISCHEN,BÜRGERMEISTER,GESELLSCHAFT,IMMER WIEDER,MITTLERWEILE,ENTSCHEIDUNG,EUROPÄISCHEN,GLEICHZEITIG,ZUSAMMENHANG,ÖFFENTLICHEN,INSBESONDERE,ZUM BEISPIEL,UNIVERSITÄT,SCHLIEßLICH,FRANKFURTER,MITARBEITER,BEVÖLKERUNG,POLITISCHEN,VERGANGENEN,TATSÄCHLICH,STUTTGARTER,MÖGLICHKEIT,ENTWICKLUNG,SOGENANNTEN,PRÄSIDENTEN,ENTSCHIEDEN,VORSITZENDE,DEUTSCHLAND,ENTSCHEIDEN,AUSSTELLUNG,UNTERNEHMEN,MANNSCHAFT,HAUPTSTADT,WOCHENENDE,DISKUSSION,ANGESICHTS,INZWISCHEN,JEDENFALLS,FRANKREICH,MITGLIEDER,MILLIARDEN,ALLERDINGS,POLITISCHE,ÜBERNEHMEN,ENTWICKELT,PRODUKTION,EHEMALIGEN,BERICHTETE,DONNERSTAG,VERHINDERN,EIGENTLICH,GESCHICHTE,BEZEICHNET,VIELLEICHT,SICHERHEIT,MINDESTENS,RUSSISCHEN,WIRTSCHAFT,SEPTEMBER,VERGLEICH,VERTRETER,HAMBURGER,VERFAHREN,KILOMETER,GEPLANTEN,POLITIKER,BEDEUTUNG,GEMEINSAM,EINZELNEN,GEGENÜBER,ZUMINDEST,BERICHTET,ERREICHEN,REGIERUNG,INTERESSE,INSGESAMT,LEDIGLICH,DEUTSCHEN,EBENFALLS,PRÄSIDENT,WEITERHIN,NATÜRLICH,VOR ALLEM,INNERHALB,STUTTGART,EHEMALIGE,KOALITION,FRANKFURT,ZUSCHAUER,KOMMENDEN,VERFÜGUNG,BESONDERS,INDUSTRIE,SITUATION,VERWENDET,NICHT NUR,STUDENTEN,MILLIONEN,PARLAMENT,VERLASSEN,ÜBERHAUPT,PROBLEME,DURCHAUS,RICHTUNG,GENOMMEN,AUßERDEM,GLEICHEN,SOLDATEN,KOLLEGEN,GESPRÄCH,PERSONEN,DEZEMBER,ERSTMALS,GEBRACHT,SPRECHER,WEITEREN,DEUTLICH,GEWORDEN,GESTELLT,MITTWOCH,NOVEMBER,BEKOMMEN,WIRKLICH,GEKOMMEN,ERREICHT,DIENSTAG,MÜNCHNER,ERGEBNIS,BERLINER,NÄCHSTEN,ARBEITEN,PROGRAMM,SCHAFFEN,INTERNET,VERLOREN,DEUTSCHE,OFFENBAR,ERHALTEN,ZUSAMMEN,ZUNÄCHST,GEFUNDEN,VERSUCHT,MEHRHEIT,ERWARTET,ERKLÄRTE,NEW YORK,WELTWEIT,MENSCHEN,VERLETZT,HEUTIGEN,POSITION,DARUNTER,PARTEIEN,BESUCHER,IMMERHIN,PUBLIKUM,SPRECHEN,ERWARTEN,BEISPIEL,FORDERTE,GESCHÄFT,EXPERTEN,AUFGRUND,FUNKTION,GESAMTEN,VERKAUFT,MINISTER,GEWINNEN,JÄHRLICH,BEDEUTET,BEHÖRDEN,ZWISCHEN,HINGEGEN,FRÜHEREN,ZUGLEICH,FREILICH,MEISTEN,SONNTAG,ZWEITEN,STIMMEN,GEHÖREN,PROZENT,TRAINER,GRÖßTEN,EINFACH,POLITIK,FEBRUAR,AUSLAND,GESETZT,KÖNNTEN,RECHNEN,KINDERN,GERICHT,WOLLTEN,DRITTEN,MÖGLICH,DAGEGEN,ZULETZT,SOLLTEN,TOCHTER,FORDERT,FREITAG,VORJAHR,BLEIBEN,DERZEIT,STAATEN,THEATER,BESTEHT,KONNTEN,GENANNT,CHANCEN,OHNEHIN,STÄRKER,SCHNELL,KÜNFTIG,AUFTRAG,ZUKUNFT,SCHEINT,NÄMLICH,BEREICH,HAMBURG,FAMILIE,LÄNDERN,STELLEN,MEHRERE,OKTOBER,GEGEBEN,WICHTIG,STUNDEN,FÜHRUNG,ANDERES,SPIELEN,JEWEILS,EINIGEN,SCHÜLER,DARÜBER,PROBLEM,ERKLÄRT,NACHDEM,DRITTEL,KLEINEN,MONATEN,BRINGEN,BEKANNT,GESAMTE,BISLANG,MINUTEN,BETONTE,KONZEPT,SAMSTAG,WENIGEN,GEWESEN,GESEHEN,WENIGER,SONDERN,EINSATZ,ANGABEN,DADURCH,RICHTIG,STELLTE,RICHTER,GEFÜHRT,ERZÄHLT,MÜNCHEN,SOLCHEN,ENDLICH,POLIZEI,SCHRITT,BRAUCHT,SPIELER,GESTERN,SPRACHE,MEINUNG,WEITERE,EIGENEN,ANSICHT,LETZTEN,ZUFOLGE,EINZIGE,BEGINNT,GEMACHT,MÄDCHEN,RUßLAND,BEREITS,HANDELT,PROJEKT,BERICHT,WÄHREND,ANGEBOT,ANDEREN,AUFGABE,DENNOCH,GEPLANT,SPRICHT,DESHALB,ANDERER,NIEMAND,UNSERER,ITALIEN,ZAHLEN,SAISON,ANDERS,HINAUS,SCHULE,VÖLLIG,GEWALT,SUCHEN,AUGUST,UNSERE,KULTUR,SOWOHL,MEINTE,LÖSUNG,URTEIL,BRINGT,FÜHREN,SICHER,GESAGT,MEDIEN,SOMMER,DANACH,BILDER,HELFEN,FOLGEN,SCHWER,FIRMEN,HANDEL,VORBEI,SPRACH,REGION,PUNKTE,KUNDEN,KLEINE,LEICHT,LÄNDER,STUNDE,TRAGEN,GEFAHR,ZEIGTE,BEGANN,GANZEN,LANGEN,HÄUFIG,STREIT,KRITIK,TEILTE,RAHMEN,BANKEN,LANDES,SETZEN,ANTEIL,FRÜHER,ZWEITE,KIRCHE,GESETZ,AKTIEN,BAYERN,ÄNDERN,LEITER,BEREIT,LONDON,MONATE,MUTTER,STRAßE,MENSCH,BONNER,GROßER,WENIGE,LETZTE,HÄLFTE,WESTEN,HERAUS,WASSER,SPIELT,OBWOHL,ZIEHEN,MITTEL,GRÖßTE,ERNEUT,KEINER,SOFORT,BIETEN,ELTERN,LÄNGST,BREMEN,UMSATZ,ZEITEN,MOSKAU,DÜRFEN,WELCHE,MÜßTEN,MUßTEN,DÜRFTE,ZEIGEN,BESTEN,FRAGEN,SEITEN,MÖCHTE,GELTEN,VEREIN,CHANCE,WÄHLEN,MACHTE,BEGINN,JUNGEN,BÜRGER,STELLE,DIREKT,BIETET,ERSTEN,BISHER,DOLLAR,MÜSSEN,DAMALS,SELBST,WOCHEN,SEINEM,JAHRES,VIELEN,SOLLTE,JEDOCH,SOLLEN,DIESEM,SOLCHE,NEHMEN,BESSER,STEHEN,WÜRDEN,WURDEN,KONNTE,FINDEN,SEINEN,FRAUEN,GLE' & _
'ICH,HALTEN,GEHÖRT,EINMAL,DIESEN,EINIGE,WEITER,BEIDEN,KOMMEN,HÄTTEN,SEINES,AUTOIT,KÖNNTE,EUROPA,NICHTS,MONTAG,BERLIN,ALLEIN,JANUAR,WOLLEN,HINTER,ANFANG,HATTEN,ANDERE,GROßEN,DIESES,PARTEI,MACHEN,LASSEN,GRUPPE,LIEGEN,BLEIBT,STELLT,KÖNNEN,ERFOLG,KOSTEN,GRÜNEN,FINDET,WERDEN,EBENSO,DARAUF,SPÄTER,GERADE,MÄNNER,SIEBEN,EIGENE,ARBEIT,KINDER,SEINER,DESSEN,ZURÜCK,SYSTEM,WORDEN,WISSEN,WOLLTE,DIESER,WIEDER,KEINEN,JAHREN,HEIßT,SEHEN,DARIN,MEIST,MACHT,KAMEN,ALLEN,KOMMT,DENEN,DAFÜR,DRUCK,MEINE,ZUDEM,BLICK,WÜRDE,KREIS,SOGAR,ERSTE,FRAGE,IHNEN,WEDER,LEBEN,DEREN,NEUER,SOLLE,AUGEN,GUTEN,SIEHT,IHREM,GROßE,LIEGT,KAMPF,DAVON,HÄTTE,GEBEN,STETS,OFFEN,BÜHNE,UNTER,GEGEN,SCHON,SEINE,EINES,LIEBE,KEINE,WARUM,FÄLLT,SICHT,WÄREN,DIESE,LÄUFT,BÖRSE,INDEM,ROMAN,NICHT,EINST,DARUM,REIHE,EINER,WURDE,HATTE,JAPAN,DURCH,EINEM,EINEN,HABEN,HAUSE,STEHT,DABEI,ABEND,BODEN,STADT,SOWIE,WEGEN,ALLES,ANGST,NEUES,VIELE,ETWAS,OSTEN,FOLGE,WERDE,JETZT,WAREN,JAHRE,JEDES,CHINA,IMMER,SAGTE,NEUEN,PETER,BEVOR,SEIEN,IHREN,DAMIT,IHRER,HEUTE,STAND,SONST,NACHT,MÜSSE,GRUND,NEBEN,SPIEL,NAMEN,BLIEB,SEITE,WOCHE,NIMMT,SACHE,MARKT,STÜCK,ALTEN,JUNGE,METER,MUSIK,ZUVOR,TITEL,PLATZ,FIRMA,HOHEN,MITTE,STATT,PARIS,KRIEG,KUNST,JEDER,BEIDE,TROTZ,APRIL,OPFER,THEMA,DATEN,JEDEN,FÜHRT,WENIG,LANGE,IHRES,HILFE,GENAU,MEINT,KNAPP,STAAT,RECHT,KÖNNE,PREIS,DAHER,ALLER,JEDEM,TAGEN,MUßTE,ZWÖLF,GEHEN,SECHS,ZEIGT,GANZE,DARAN,SETZT,SAGEN,ROLLE,WOLLE,STARK,GENUG,LEUTE,VATER,WEISE,OHNE,HAUS,KIND,AUTO,KÖLN,SAGT,RUND,WIRD,DARF,HÖHE,ENDE,ZEIT,HIEß,PAAR,SIND,ETWA,WEIL,EURO,FEST,LIEß,SOHN,HAND,IDEE,WILL,ALTE,JEDE,GIBT,ALLE,GMBH,Z.B.,LANG,FORM,JAHR,ZWEI,MÄRZ,ODER,GUTE,ABER,HERR,JUNI,NEUE,TAGE,DREI,BUCH,SOLL,REDE,NOCH,ÜBER,LAUT,BANK,KURZ,FILM,OBEN,FELD,BEIM,DOCH,SEIT,NAHM,MEHR,WELT,EBEN,ALSO,GILT,SICH,NEUN,LAND,ZEHN,GROß,BONN,FRAU,WERK,ZWAR,MANN,WEIß,GEBE,DAZU,KANN,KAUM,KOPF,DASS,WORT,MICH,GELD,WOHL,NÄHE,LÄßT,SIEG,JULI,RAUM,DIES,WAHL,HOCH,TEIL,FALL,SEIN,FÜNF,KLAR,HÄLT,WEIT,LAGE,DANN,IHRE,EHER,FAND,ZAHL,BALD,GEHT,SEHR,NACH,ZIEL,HIER,GING,KEIN,GANZ,ERST,MARK,HABE,EINE,VIER,LUFT,VIEL,WÄRE,FAST,DORT,WENN,FREI,CHEF,DENN,HOHE,BILD,WERT,ACHT,AUCH,BIS,ZUR,AUF,DES,MIT,FÜR,EIN,DEM,IST,UND,DIE,DER,DEN,DAS,SAH,VON,ALS,MIO,MRD,WIE,ZUM,VOR,NUR,WAR,AUS,NEU,ALT,HAT,BEI,SIE,DAß,MAN,USA,CDU,PER,DDR,BZW,OFT,IHN,MAG,IHM,WEG,UNS,INS,TOD,SPD,PRO,AMT,NIE,ART,LAG,FDP,TAG,DPA,GUT,BAU,UHR,KAM,TUN,DR.,GAR,WAS,BIN,SEI,CSU,ICH,WIR,VOM,MUß,MIR,NUN,GAB,HIN,ORT,MAL,HER,WER,MAI,IHR,JA,ZU,IN,AM,AB,EU,UM,DM,AG,DA,SO,WO,ES,DU,IM,OB,JE,AN,ER', ',', 2)
Global $aDeutschKl = StringSplit('MILLIONEN,ZWISCHEN,PROZENT,WIEDER,KÖNNEN,DIESER,WERDEN,JAHREN,WORDEN,SEINER,SEINE,EINER,EINES,HABEN,SCHON,UNTER,EINEN,GEGEN,EINEM,KEINE,DIESE,DURCH,WURDE,IMMER,SAGTE,HATTE,NICHT,SIND,NOCH,SEIN,ODER,ABER,KANN,ÜBER,MEHR,EINE,AUCH,SOLL,JAHR,WILL,SICH,ZWEI,NACH,MARK,WIRD,WENN,HABE,DANN,IHRE,UHR,VOM,WAS,ICH,SEI,WIR,VON,ALS,EIN,HAT,AUS,DEN,DEM,DES,MIT,DAS,IST,FÜR,AUF,DAß,NUR,WAR,ZUM,VOR,MAN,BIS,ZUR,UND,BEI,SIE,DIE,DER,WIE,IN,ZU,UM,AM,SO,ER,IM,ES,AN', ',', 2)
Global $sText = 'Hiermit erkläre ich sie zu Mann und Computer. Sie dürfen die Braut jetzt booten.'
Global $sCaesar
Global $sDeCesar
$aTime[0] = TimerInit()
$sCaesar = _Caesar($sText, Random(1, 25, 1))
$aTime[0] = TimerDiff($aTime[0])
$aTime[1] = TimerInit()
$sDeCesar = _DeCesar($sCaesar)
$aTime[1] = TimerDiff($aTime[1])
For $i = 0 To 3 Step 1
$aTime[$i] = Round($aTime[$i]/StringLen($sText), 3) * 1000
Next
ConsoleWrite('Original : ' & $sText & @CRLF & 'Caesar ['&$aTime[0]&'µs/Char] : ' & $sCaesar & @CRLF & 'DeCesar ['&$aTime[1]&'µs/Char]: ' & $sDeCesar & @CRLF)
[/autoit] [autoit][/autoit] [autoit]Func _GetText()
Local $a = _ArrayUnique(StringSplit(StringUpper(StringReplace(ClipGet(), @CR, ',', 0, 1)),@LF, 2))
_ArrayDelete($a, 0)
For $i = UBound($a) - 1 To 0 Step -1
If Not $a[$i] Then _ArrayDelete($a, $i)
Next
Local $b[UBound($a)][2]
For $i = 0 To UBound($a) - 1 Step 1
$b[$i][0] = $a[$i]
$b[$i][1] = StringLen($a[$i])
Next
_ArraySort($b, 1, 0, 0, 1)
Local $s
For $i = 0 To UBound($b) - 1 Step 1
$s &= $b[$i][0]
Next
ClipPut($s)
EndFunc
Func _DeCesar($s)
Local $aLen[25][2], $w = StringLeft($s, 25 + Int(StringLen($s) ^ 0.5))
For $i = 1 To 25 Step 1
$aLen[$i - 1][0] = _WortbuchKl(_Caesar($w, $i))
$aLen[$i - 1][1] = $i
Next
_ArraySort($aLen)
If $aLen[0][0]/$aLen[1][0] > 0.8 Then ; Wenn der beste Treffer nur 20%
For $i = 1 To 25 Step 1 ; besser ist als der 2te -> Größeres Wörterbuch
$aLen[$i - 1][0] = _WortbuchGr(_Caesar($w, $i))
$aLen[$i - 1][1] = $i
Next
_ArraySort($aLen)
EndIf
Return _Caesar($s, $aLen[0][1])
EndFunc ;==>_DeCesar
Func _Caesar($s, $n)
Local Static $z = StringSplit('ABCDEFGHIJKLMNOPQRSTUVWXYZ', '', 2)
Local $sRet, $c
$n -= Int($n / 26) * 26
$s = StringUpper($s)
For $i = 1 To StringLen($s) Step 1
$c = Asc(StringMid($s, $i, 1))
Switch $c
Case 65 To 90
$c += $n
If $c > 90 Then $c -= 26
EndSwitch
$sRet &= Chr($c)
Next
Return $sRet
EndFunc ;==>_Caesar
Func _WortbuchGr($s)
Local Static $u = UBound($aDeutschGr) - 1
For $i = 0 To $u Step 1
$s = StringReplace($s, $aDeutschGr[$i], '', 0, 1)
Next
Return StringLen($s)
EndFunc ;==>_WortbuchGr
Func _WortbuchKl($s)
Local Static $u = UBound($aDeutschKl) - 1
For $i = 0 To $u Step 1
$s = StringReplace($s, $aDeutschKl[$i], '', 0, 1)
Next
Return StringLen($s)
EndFunc ;==>_WortbuchKl
lg
Mars