Text kompliziert machen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
chiffre
code
deutsche sprache
effekt
funktion
http
kleines kind
kryptographie
nutzer
problem
prozentzahl
punkt
satz
schleife
schwierige aufgabe
text
verstehen
wort
zeichen
-
Hallo!
Ich habe eine anspruchsvolle Aufgabe, für die ich eine optimale Lösung suche. Ich programmiere gerade ein wenig aus Spaß mit PHP. Jetzt kann ein Nutzer dem anderen eine Nachricht schicken. Allerdings soll die nicht unverändert ankommen, sondern der Text soll verkompliziert werden.
Hieraus wird dann z.B.Hallo! Wie geht es dir?
Es soll also die Satzkonstruktion verändert werden, Sätze dürfen gemischt werden und manche Wörter zufallsbedingt unleserlich. Ich dachte schon über viele Methoden nach, wie ich eine allgemeine Nachricht verkomplizieren kann. Verändere ich einfach nur jedes x-te Wort, so kann man das so umgehen:a#sl geHt dir? sia!
H a l l o !
Das Wort ist noch einigermaßen leserlich.H 38 a l l reg# !
Also dachte ich über die Eliminierung aller Leerzeichen und anschließende Buchstabenveränderung nach. Tatsächlich funktioniert das immer, aber der Text ist dann überhaupt nicht mehr zu erkennen.
Wie schaffe ich es, den Text so zu verunstalten, dass er aussieht, als habe ihn ein kleines Kind geschrieben, aber dennoch leserlich bleibt? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Schwierige Aufgabe:
dafür wäre es evtl ganz hilfreich, die Vokale beizubehalten und nur bei der Reihenfolge dann zu verändern.
Das hieße, dass aus "Hallo" zwar "oH3a§" werden kann, aber nicht "$l%Hl!", denn ohne die Vokale ist die deutsche Sprache fast unmöglich zu verstehen. Schon die angesprochene Reihenfolge zerstört eigentlich den AHA!-Effekt wenn man ein Wort versteht, denn es ergeben sich unter Umständen zu viele Möglichkeiten. Ein simples Beispiel wäre "genau" -> "augen".
Ich hoffe das hat ein paar Ansätze in gegeben was man so verändern kann ohne das es unleserlich wird.
Zu deinem Problem welche Wörter verunstaltet werden sollen:
Zähl doch die Wörter eines Satzes und nimm einen Prozentteil der Gesamtwörter als verunstaltete.
Das hieße wenn man 6 Wörter hat und 50% verunstaltet, dann teilt man die Anzahl der Wörter durch 2 bzw. nimmt es mit 0.5 mal. Anschließend lässt man so häufig eine Schleife durchlaufen und jedesmal generiert man eine Zufallszahl im Bereich der Anzahl der Wörter. In diesem Fall also 3 Durchläufe und jeweils eine Zufallszahl zwischen 1 und 6 (1 und 6 eingeschlossen).
Diese Prozentzahl kann man natürlich auch noch zufällig generieren, damit sich ein Benutzer nicht auf eine bestimmte Zahl an Wörtern die verdreht sind einstellen kann.
MfG
karlsve -
Wie wärs mit
Leetspeak -> http://de.wikipedia.org/wiki/Leetspeak
ansonsten gibt es genügend Kryptosysteme ein Beipsiel ist die berühmte
Caesar-Verschlüsselung -> http://de.wikipedia.org/wiki/Caesar-Chiffre
einfach etwas nach Kryptographie Googeln dann findest bestimmt etwas :) -
Oedr du knasnt eicfnah die Agnnfas- und Endbtuachbsen biebelesasn und alle Bhcbstuaen dzaweicshn zäluflig dcruheinneadr wreüfln. *gg
Zwar hast du damit den Text nicht verkompliziert... aber er ist leserlich und sieht aus, als hätte ihn ein kleines Kind geschrieben. -
ryanblack schrieb:
Das ist dennoch genau das, was ich haben möchte. Das Problem ist ja nur, wie bereits geschildert, dass wenn ich einen Satz so schreibe:
Oedr du knasnt eicfnah die Agnnfas- und Endbtuachbsen biebelesasn und alle Bhcbstuaen dzaweicshn zäluflig dcruheinneadr wreüfln. *gg
Zwar hast du damit den Text nicht verkompliziert... aber er ist leserlich und sieht aus, als hätte ihn ein kleines Kind geschrieben.
Jetzt umgeht der Nutzer diesen Effekt, in dem gar keine Wörter zustande kommen.D a s - i s t - e i n - S a t z - d e r - n i c h t - v e r ä n d e r t - w i r d
Oder jemand schreibt einen normalen Text, ein wichtiges Wort aber wie oben.
Das muss auch umgangen werden können...
Meine momentane Idee ist, dass ich einfach alle Wörter, die nicht mindestens aus vier Zeichen bestehen, durch zufällige Zeichen ersetze. Was haltet ihr davon?
--> Wobei man dann sowas machen könnte:
Dann müsste ich alle Zeichen noch klein machen. Kennt ihr noch Sonderfälle?hwDi sAio poSo => DAS
Beitrag zuletzt geändert: 16.12.2010 17:51:52 von toolz -
@ryanblack echt genial... hab es beim ersten lesen garnicht richtig bemerkt :) sorry für den off-topic Beitrag
-
Zuerst nimmst du am Besten alle Punkte raus. Das kann man auf mehrere Weisen tun, die einfachste ist aber mit Sicherheit, die Funktion str_replace() zu verwenden. Sind keine Punkte mehr vorhanden, wird das später mit der Groß- und Kleinschreibung (die du natürlich auch manipulierst) sehr schwierig zu verstehen.
Mit der Funktion explode() machst du dann aus jedem Wort ein Arrayelement. Damit lassen sich Wörter besser als einzelne "Dinge" handhaben.
Dann kannst du weiter so vorgehen:
Dass ich oben nur einen Zufallsbereich von 1-5, und nicht von 0-5, wie in der Schleife gewählt habe, sorgt dafür, das das erste Wort heil bleibt.$explodet_text = explode('.', $text); $i = mt_rand(1, 5); foreach($explodet_text as $word) { if($i == 0) { // stelle was mit dem Wort an... // ...und weiter im Text: $i = mt_rand(0, 5); } $i--; }
-
Du könntst auch infach immr dn Buchstabn löschn. Dann kann man dn Txt immr noch lsn, abr r ist trotzdm stark vrändrt.
Dis kann man dann auch nicht durch infügn von Lrzichn umghn.
mfg
xompsl -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage