vignere funktioniert nicht

  • nachdem ich neulich mit eurer hilfe den caesar-chiffre hinbekommen habe hab ich mich jez rangesetzt die vignere-verschlüsselung zu versuchen. diese funktioniert so das man einen text hat (z.B.:"forum hilfe ist toll" :lol: schleim :lol:) und ein schlüsselwort (zB: "peter") nun wird den buchstabe des schlüsselwortes eine ordnungszahl zugeordnet: a=0 b=1 c=2 usw. und der text wird mit der jeweils zugehörigen stelle des schlüsselworts kodiert. im beispiel: erster buchstabe text="f"=6; erster buchstabe schlüsselwort="p"=16; das f wird um 16 stellen verschoben ist nun 6(f)+16(p)=22=v. der 2. buchstabe vom text wird mit dem 2. des schlüsselworts kodiert also o+e=t der 3. mit dem 3. usw. das hat prima funktioniert. nun hatte ich bloß 2 probleme: 1. wenn das schlüsselwort länger ist als der text hat er 0+buchstabe aus schlüsselwort gerechnet obwohl der text dort beendet sein sollte. dies habe ich mit substr gelöst indem das schlüsselwort einfach abgeschnitten wurde. das 2. problem triit nun auf wenn der text länger ist als das schlüsselwort. meine idee ist dass er wenn der stellenzähler des schlüsselwortes die länge des schlüsselwortes errreicht hat auf 0 springt. naja auf jeden fall funzt es nich.

    Der Code:

    würde mich freuen wenn mir jemand helfen könnte

  • also nochmals zum verständniss:

    die unter einander stehenden buchstaben werten (ascii) wedne adiert ?!

    forum hilfe ist toll
    peterpeterpeterp

    wenn ja, dann findei ch deinen code mindestens um das 3fach zu lang.

  • also der war mal halb so lang aber auf der suche nach dem fehler hab ich dann den kram immer erweitert. also der untenstehende code ist kürzer und glaub ich gleichbedeutend


    er zeigt mir trotzdem an das das ende unterwartet in der letzten zeile kommt

  • Hallo

    hab da mal ein paar Fragen. Soll dein Code die Buchstaben nach den ASCII-Werten addieren? Wenn ja, dann bekommst du ja für dein codiertes Wort lauter Sonderzeichen raus. Ich hab dafür einfach mal schnell einen Code geschrieben:

    Kannst dir das ganze auch hier mal online angucken:

    http://www.bvpuettlingen.de/test.php

    [/url]

  • einen string vervielfachen ?
    so ?

    Code
    $wort = "Bla";
    $string = $wort.$wort.$wort.$wort;


    oder wie meinste das jetzt ? ;)

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • nee der soll den so vervielfachen das der die länge eines anderen hat.
    also du hastn text: "hallo na wie gehts?" der hat strlen=19 und das schlüsselwort: "blabla" strlen=6 und jez soll der eben aus "blabla" "blablablablablablab" machen also das sooft wiederholen bis das ding auch 19 hat. die letzte wiederholung is dann eben nur das "b" von "bla". gibts sowas überhaupt?