Announcement

Collapse
No announcement yet.

Einfache Verschlüsselung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einfache Verschlüsselung

    Hallo alle zusammen,
    ich hab mich heute hier angemeldet in der Hoffnung hier Hilfe zu finden. ^^

    Ich habe von meiner Schule eine Aufgabe zur "Einfachen Verschlüsselung" bekommen und blicke überhaupt nicht durch. Ich hatte eine Theorie wie es sein könnte diese wurde aber leider nach einpaar Minuten wieder von mir verworfen.

    Ich möchte keinesfalls das die Aufgabe hier gelöst wird nur würde ich gerne wissen was ich eigendlich machen muss bzw. wie ich es machen kann.
    Und wie der Sinn der Verschlüsselung hier ist.

    Zu der Aufgabe:

    1. Programmieren Sie ein solches Programm, welches Text kodieren und
    dekodieren kann!


    2. Erweitern Sie Ihr Programm mit einer Eingabe eines Schlüsselwortes.

    Schlüsselwort: petra1
    Beispiel: hans mueller (ha - g1 , ns - kw, mu - lv, el - rj, le - jr, r - r)
    hans mueller = g1kw lvrjjrr

    Tabelle:

    p e t r a 1
    b c d f g h
    i j k l m n
    o q s u v w
    x y z 0 2 3
    4 5 6 7 8 9

    Ich hab auch schon nach Seiten dir mir helfen könnten gegoggelt verstehe, aber irgendwie nur Bahnhof.

    Ich danke euch für jegliche Antwort!

    Lg JavaCup

    PS: Meine Idee war gewesen das ab der 1 beginnend das Alphabet rückwärts verschlüsselt wurde. Sprich 1 = a, a = b usw.

  • #2
    Hallo,

    eine einfache Verschlüsselung mit Angabe eines Schlüsselworts ist die Vernam-Verschlüsselung (XOR-Verschlüsselung). Da findet sich genug.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Weitere Möglichkeit

      http://de.wikipedia.org/wiki/Rot13
      Christian

      Comment


      • #4
        Sollst du irgendwie verschlüsseln oder musst du zwingend die Verschlüsselung deines gezeigten Beispiels erfüllen also muss 'hans mueller' 'g1kw lvrjjrr' ergeben?

        Comment


        • #5
          Hi,
          danke erstmal für die schnellen Antworten hier. ^^
          Ich schaue mir gleich mal die genannten Seiten und Suchbegrifftipps an.

          Ralf Jansen: Ja, es muss genau "g1kw lvrjjrr" rauskommen.

          Lg JavaCup

          Comment


          • #6
            Also ist es nur für diesen Text gebunden? oder sollte es mit jedem Text klapen?
            sonst wäre replaceall(); eine möglichkeit um einen stringteil durch einen anderen zu ersetzen.

            Comment


            • #7
              Anderer Text soll auch kodiert werden können.
              Unser Lehrer meinte auch soweit ich mich richtig erinnere irgendetwas mit tauschen.

              Comment


              • #8
                Eine Nutzung von ReplaceAll birgt gewisse Unwägbarkeiten. Beispiel bei einer Buchstabenverschiebung:

                1. Durchgang ersetze alle A mit E
                2. Durchgang ersetze alle E mit H
                ???

                Besser eine Schleife verwenden und jeden Buchstaben behandeln...
                Christian

                Comment


                • #9
                  An sowas ähnliches dachte ich auch ^^, aber ich verstehe nicht wieso das "e" in der Verschlüsselung "r" ergibt und das "r" auch "r" ergeben kann. (el = rj & r = r)
                  Wie soll man bei einen selbst eingeschriebenen Begriff dann dieses r von dem anderen r unterscheiden können, wenn man es wieder entschlüsseln will ?

                  Comment


                  • #10
                    p e t r a 1
                    b c d f g h
                    i j k l m n
                    o q s u v w
                    x y z 0 2 3
                    4 5 6 7 8 9


                    Das lässt sich über die gegebene Tabelle lösen (keine Ahnung wie sich das Verfahren schimpft, wenn es einen Namen hat). Ich habe mal das erste Doppelpaar ha - g1 eingefärbt. Das sollte dir wohl als Lösungsanstoß reichen und auch spätestens jetzt zeigen warum das letzte r ein r bleibt.

                    Edit: Könnte ein Playfair-Quadrat sein. Hattet ihr das schon im Unterricht?
                    Zuletzt editiert von Ralf Jansen; 16.09.2010, 20:50.

                    Comment


                    • #11
                      So, jetzt ist alles klar, du brauchst, eine Liste in welche du den uncodierten String in 2er paare aufteilen kannst.
                      für die Code, beim ersten überprüfen ob 1 wert der 2Dimensionalen Arrays gleich ist, für die 2te, ob der 2 wert gleich ist, und beim dritten kannst du den gesamten resten nehmen:
                      Code ist nur zur anschauung, einfach viel string bearbeitung.
                      [highlight=c#] string[,] codex={
                      {p e t r a 1}
                      {b c d f g h}
                      {i j k l m n}
                      {o q s u v w}
                      {x y z 0 2 3}
                      {4 5 6 7 8 9}};//" und , zeichen hab ich weggelassen
                      for (int suchwerte=0;suchwerte</*ist das aus je 2chars pro zelle bestehende array*/zuverschlüselnderText.lenght;suchwerte++)
                      {
                      if (x von codex[a,x] array für den ersten buchstaben ==y von codex[a,y] array für den zweiten buchstaben)
                      {
                      ersetze durch den rechten nachbarn
                      }else if(x von codex[x,a] array für den ersten buchstaben ==y von codex[y,a] array für den zweiten buchstaben)
                      {den darunter verwenden}
                      else{nehme den links davon}
                      }[/highlight]
                      ich hoffe ich habe nicht für zu viel verwirrung gesorgt.
                      Mir ist bewusst das es auf die art vermutlich ziemlich viele system resourcen brauchen wird, jedoch könnte man die rechenleistung später nahezu Problemloss auf mehrere Kerne verteilen.

                      Comment


                      • #12
                        Mir ist bewusst das es auf die art vermutlich ziemlich viele system resourcen brauchen wird, jedoch könnte man die rechenleistung später nahezu Problemloss auf mehrere Kerne verteilen.
                        Rechner mit nur einem Kern werden diesen Code wohl kaum bewältigen können.....
                        Christian

                        Comment


                        • #13
                          Originally posted by Christian Marquardt View Post
                          Rechner mit nur einem Kern werden diesen Code wohl kaum bewältigen können.....
                          Da wird wohl eine Multithread implementierung unumgäglich sein und ne 1+++ für ne MPU Anwendung wird es wohl auch noch vom Lehrer geben...
                          AlexDgG

                          Es gibt keine dummen Fragen. Nur dumme Antworten!

                          Comment


                          • #14
                            Originally posted by Christian Marquardt View Post
                            Rechner mit nur einem Kern werden diesen Code wohl kaum bewältigen können.....
                            Er Muss ja keine Bücher verschlüsseln, sondern blos wenige Wörter und C# ist ja schlieslich schnell.
                            Ausserdem haben heutzutage die meisten mindestens einen Dualcore mit 2,66GHZ zu hause stehen, wenn nicht sogar nen i7-980X.
                            Und sonst kann ja immernoch jemand mit Cuda kentnissen die Graka daran knabbern lassen.
                            Die frage ist, Kriegst du das so implementiert das es auch läuft?

                            Comment


                            • #15
                              Originally posted by Multithread View Post
                              Er Muss ja keine Bücher verschlüsseln, sondern blos wenige Wörter und C# ist ja schlieslich schnell.
                              Ausserdem haben heutzutage die meisten mindestens einen Dualcore mit 2,66GHZ zu hause stehen, wenn nicht sogar nen i7-980X.
                              Und sonst kann ja immernoch jemand mit Cuda kentnissen die Graka daran knabbern lassen.
                              Die frage ist, Kriegst du das so implementiert das es auch läuft?
                              na dann... biete mal eine MULTITHREAD (=anspielung) Implementierung die MPU (und bitte synchronisiert) fähig ist .............
                              AlexDgG

                              Es gibt keine dummen Fragen. Nur dumme Antworten!

                              Comment

                              Working...
                              X