Ankündigung

Einklappen
Keine Ankündigung bisher.

Symmetrische Verschlüsselung a la Caesar Scheibe

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Symmetrische Verschlüsselung a la Caesar Scheibe

    Hallihallo,

    ich bin am verzweiflen und wende mich deshalb an die Community. Ich bin absoluter Anfänger/ Neuling was PHP angeht. Wir haben das gerade im IV Unterricht und jetzt soll ich bis morgen eine Symmetrische Verschlüsselung mit PHP erstellen. Soll in etwas so funktionieren wie die Caeser-Scheibe. Das heißt man soll in ein Formular einen Text eingeben und der soll dann verschlüsselt angezeigt werden. Ich habe wirklich keine Ahnung wie man sowas macht . Google hat auch nicht wirklich geholfen, da die Lösungen da zu kompliziert waren. Könnt ihr mir vllt helfen und es so verständlich erklären dass ich das morgen auch meiner Klasse erklären kann? Das wäre super hilfreich

    Jetzt schonmal ein Dankeschön an alle die sich hiermit befassen

    LG Sebastian

  • #2
    Was hast du denn so bisher? Oder erwartest du, dass hier jemand deine Hausaufgaben erledigt?

    Kommentar


    • #3
      http://de.wikipedia.org/wiki/Caesar-...l%C3%BCsselung

      http://lmgtfy.com/?q=Caesar+verschl%C3%BCsseung+php

      google üben!

      Kommentar


      • #4
        Das ist es ja ich weiß nicht wie ich es machen soll. Klar das html Formular kann ich erstellen und ich weiß auch wie die Caesar-Scheibe funktioniert. Das heißt in der Theorie muss ich ja das Alphabet um einen bestimmten Faktor verschieben nur wie geht das in PHP. Ich hatte vor jedem Buchstaben einer Zahl zuzuweisen aber dann weiß ich nicht weiter. Also ich weiß nicht was ich an Befehlen verwenden soll und wie ich den Faktor einbauen muss .

        Kommentar


        • #5
          http://php.net/manual/de/language.op....increment.php

          Kommentar


          • #6
            Oder halt jeden Buchstaben mit seinem festen "Partner" einfach ersetzen.

            Kommentar


            • #7
              Dafür brauchst du eigentlich nur genau zwei Funktionen:

              range
              str_replace

              Und ein bisschen Mathematik und Schleifen.

              Kommentar


              • #8
                Zitat von ApoY2k Beitrag anzeigen
                Dafür brauchst du eigentlich nur genau zwei Funktionen:

                range
                str_replace

                Und ein bisschen Mathematik und Schleifen.
                Das geht viel einfacher bei so einer simplen Verschlüsselung.

                Ich hatte vor jedem Buchstaben einer Zahl zuzuweisen aber dann weiß ich nicht weiter. Also ich weiß nicht was ich an Befehlen verwenden soll und wie ich den Faktor einbauen muss .
                Die Idee dahinter ist schon richtig nur der Ansatz nicht. Die Lösung ist einfach statt jeden Buchstaben eine Zahl zuzuweisen. Wandelst du die Buchstaben einfach in Zahlen Code um das nennt sich Ascii Code.

                Siehe dazu http://www.asciitable.com/

                Dazu braucht du die Befehle ord() das gibt die den Ascii (Zahlenwert) des Buchstaben wieder
                (http://www.php.net/manual/de/function.ord.php)

                Und den Befehl chr() das wandelt dir den Ascii Code wieder in ein Zeichen um.
                (http://www.php.net/manual/de/function.chr.php)

                Nun brauchst du den Ascii Zahlen wert nur noch addieren und wieder umwandeln. Beachte aber auch das Ende des Ascii Zahlencode der sollte nicht überschritten werden. Hier zu erstellt du eine Abfrage die dann mit dem Wert von vorne an begint dazu zu zählen.

                Beispiel angenohen wir nehmen nur die Zahlen und klein und Großbuchstaben. (siehe dazu Ascii Tabele)

                Also den Bereich von 48 bis 122

                Dein Zeichen x hat den Ascii Wert von 120 und du willst alle Zeichen um 5 stellen verschieben. Dann lautet der neue Ascii Wert 51
                120 + 5 = 125 Limit überschritten - 122 = Rest 3 + Anfangswert 48 = 51

                Alles was in den Bereich drin ist brauchst dann nur plus 5 rechnen.
                Zb
                Dein Zeichen P hat den Wert 80 plus 5 = neuer Wert 85 ergibt das Zeichen U

                So einfach ist das ich denke das sollltes du nun auch umsetzen können.

                Du verschiebs also den Orignal Text einfach um einen bestimmten Faktor (zahlenwert) weiter nach vorne.
                Wenn du das ganze noch ein wenig sicher machen willst verwendest du dafür einen Password.
                Oder noch besser du schreibst dann eine Veneger Verschlüsselung.
                http://de.wikipedia.org/wiki/Vigen%C...l.C3.BCsselung

                Mfg Splasch

                Kommentar


                • #9
                  Zitat von splasch Beitrag anzeigen
                  Das geht viel einfacher bei so einer simplen Verschlüsselung.



                  Die Idee dahinter ist schon richtig nur der Ansatz nicht. Die Lösung ist einfach statt jeden Buchstaben eine Zahl zuzuweisen. Wandelst du die Buchstaben einfach in Zahlen Code um das nennt sich Ascii Code.

                  Siehe dazu http://www.asciitable.com/

                  Dazu braucht du die Befehle ord() das gibt die den Ascii (Zahlenwert) des Buchstaben wieder
                  (http://www.php.net/manual/de/function.ord.php)

                  Und den Befehl chr() das wandelt dir den Ascii Code wieder in ein Zeichen um.
                  (http://www.php.net/manual/de/function.chr.php)

                  Nun brauchst du den Ascii Zahlen wert nur noch addieren und wieder umwandeln. Beachte aber auch das Ende des Ascii Zahlencode der sollte nicht überschritten werden. Hier zu erstellt du eine Abfrage die dann mit dem Wert von vorne an begint dazu zu zählen.

                  Beispiel angenohen wir nehmen nur die Zaheln und klein und Großbuchstaben. (siehe dazu Ascii Tabele)

                  Also den Bereich von 48 bis 122

                  Dein Zeichen x hat den Ascii Wert von 120 und du willst alle Zeichen um 5 stellen verschieben. Dann lautet der neue Ascii Wert 51
                  120 + 5 = 125 Limit überschritten - 122 = Rest 3 + Anfangswert 48 = 51

                  Alles was in den Bereich drin ist brauchst dann nur plus 5 rechnen.
                  Zb
                  Dein Zeichen P hat den Wert 80 plus 5 = neuer Wert 85 ergibt das Zeichen U

                  So einfach ist das ich denke das sollltes du nun auch umsetzen können.

                  Du verschiebs also den Orignal Text einfach um einen bestimmten Faktor (zahlenwert) weiter nach vorne.
                  Wenn du das ganze noch ein wenig sicher machen willst verwendest du dafür einen Password.
                  Oder noch besser du schreibst dann eine Veneger Verschlüsselung.
                  http://de.wikipedia.org/wiki/Vigen%C...l.C3.BCsselung

                  Mfg Splasch
                  Mal abgesehen davon, dass du ein merkwürdiges Verständnis von "einfacher" hast, ist das auch noch falsch.

                  Z um 1 verschoben (90+1=91) würde nämlich nicht A(65) ergeben, sondern [.

                  Kommentar


                  • #10
                    Mal abgesehen davon, dass du ein merkwürdiges Verständnis von "einfacher" hast, ist das auch noch falsch.

                    Z um 1 verschoben (90+1=91) würde nämlich nicht A(65) ergeben, sondern [.
                    Ja und wo ist dein Problem dabei? Dies sind eben Zeichen in dem vordefinierten Bereich die es gibt. Wenn du keine Sonderzeichen haben willst must die eben auch noch ausgrenzen. Halt ich aber nicht für nötig da es zu Verschlüsseln und Entschlüsseln total ausreicht.

                    Wir wollen hier aus dem Zeichen Z garkein A machen sondern eben ein [

                    So eine simple Verschlüsselung ist mit ein paar Code Zeilen schnell erledigt. Ich denke kaum das es noch einfacher geht!

                    Mfg Splasch

                    Kommentar


                    • #11
                      Zitat von splasch Beitrag anzeigen
                      Ja und wo ist dein Problem dabei? Dies sind eben Zeichen in dem vordefinierten Bereich die es gibt. Wenn du keine Sonderzeichen haben willst must die eben auch noch ausgrenzen. Halt ich aber nicht für nötig da es zu Verschlüsseln und Entschlüsseln total ausreicht.

                      Wir wollen hier aus dem Zeichen Z garkein A machen sondern eben ein [

                      So eine simple Verschlüsselung ist mit ein paar Code Zeilen schnell erledigt. Ich denke kaum das es noch einfacher geht!

                      Mfg Splasch
                      Soll in etwas so funktionieren wie die Caeser-Scheibe.
                      Ich bezweifel, dass die Römer eine eckige Klammer auf ihrer Caesar-Scheibe hatten...

                      Kommentar


                      • #12
                        Um das geht es ja nicht sondern das es jemand nicht mehr lesen kann. Oder denkst du die Ägypten haben mit Buchstaben geschrieben? Die haben nur Symbole verwendet. Je mehr Zeichen vorhanden sind um so eine höhere dichte wird erreicht.

                        Könnte man mit den Bit vergleichen 64 bit ist eben besser als 16 bit

                        Mfg Splasch

                        Kommentar


                        • #13
                          Zitat von splasch Beitrag anzeigen
                          Um das geht es ja nicht sondern das es jemand nicht mehr lesen kann. Oder denkst du die Ägypten haben mit Buchstaben geschrieben? Die haben nur Symbole verwendet.
                          Das machen die Chinesen heute noch so, aber das hat nicht den Hintergrund einer Verschlüsselung.

                          Zitat von splasch Beitrag anzeigen
                          Je mehr Zeichen vorhanden sind um so eine höhere dichte wird erreicht.
                          Wir reden hier von einer Hausaufgabe und einer "Verschlüsselung" mit einer stark begrenzten Schlüsselmenge. Da so eine Diskussion loszutreten ist sinnlos.

                          Kommentar


                          • #14
                            Zitat von splasch Beitrag anzeigen
                            Wir wollen hier aus dem Zeichen Z garkein A machen sondern eben ein [
                            Ich glaube kaum. Die Caesar-Verschlüsselung operiert auf dem normalen Alphabet, was man so verwendet, d.h. alle Buchstaben von A-Z. Davon werden zwei genommen und gegeneinander Verschoben. Also kann nach der Verschlüsselung genauso nur "A-Z" vorkommen, wie vorher. Weil beide Male das gleiche Alphabet verwendet wird.

                            Hier mal etwas Pseudo-Code, damit du in etwa weißt, wie du Anfangen musst:

                            Code:
                            alphabet =  [a-z]
                            vorher = "hello world"
                            nachher = ""
                            verschiebung = 1
                            
                            für jeden buchstaben in [vorher]:
                                suche index von [buchstabe] in [alphabet]
                                erhöhe index um [verschiebung]
                                
                                [Hier musst du etwas hirnschmalz zeigen: wenn der index größer ist,
                                 als dein alphabet, geht der code schief. was muss man hier machen,
                                   damit es wieder "von vorne" anfängt zu zählen?]
                            
                                schreibe buchstabe bei [index] von [alphabet] in [nachher]
                            Das jetzt in PHP übersetzen sollte trivial sein

                            Kommentar


                            • #15
                              Zitat von ApoY2k Beitrag anzeigen
                              Ich glaube kaum. Die Caesar-Verschlüsselung operiert auf dem normalen Alphabet, was man so verwendet, d.h. alle Buchstaben von A-Z. [...]
                              Der TE hat aber geschrieben, dass eine Verschlüsselung erstellt werden soll, die wie die Caesar-Verschlüsselung arbeiten soll und nicht eine 100% Implementierung dessen.

                              Kommentar

                              Lädt...
                              X