ver- und entschlüsseln wieder mal

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

  • ver- und entschlüsseln wieder mal

    Bevor sich irgendjemand aufregt: Ich habe die Suchfunktion benutzt, aber leider geht die bei mir an diesem Rechner nicht. Liegt an der Firewall - Berni scheint das Problem aber zu kennen.

    Jetzt zu meinem eigentlichen Anliegen:

    Ich möchte einen bestimmten String verschlüsseln, bzw. einfach unkenntlich machen (muss nicht besonders sicher sein - es geht nur darum, dass man den ursprünglichen String nicht mehr erkennt.)

    Auf einer anderen Seite wird dieser String wieder entschlüsselt, so dass ich den ursprünglichen String wieder vorliegen habe.

    Ich brauche also irgendeine Funktion, die ver- UND entschlüsseln kann.
    Das ganze arbeitet mit textfiles, es hilft mir also auch nicht, DECODE in Verbindung mit ENCODE zu verwenden. Auch crypt() hilft mir nicht weiter, da es nur einseitig arbeitet, genauso wie md5..

    Wie gesagt.. es muss nicht besonders sicher sein, sondern sollte den String nur unkenntlich machen. Vielleicht kann ich da sogar mit Zeichenkettenfunktionen arbeiten?
    Wichtig ist eben nur, dass ich den ursprünglichen String wieder herstellen kann.

    Danke für Eure Hilfe

  • #2
    PHP-Code:
    function mycrypt($input$key){
        
    $key_len strlen($key)-1;
        
    $input_len strlen($input)-1;
        
    $input_cnt $key_cnt $output '';
        while(
    $input_cnt <= $input_len){
            if(
    $key_cnt >= $key_len){
                
    $cur_key $key[$key_cnt];
                
    $key_cnt 0;
            }else{
                
    $cur_key $key[$key_cnt];
                
    $key_cnt++;
            }
            
    $output .= chr(ord($input[$input_cnt]) ^ ord($cur_key));
            
    $input_cnt++;
        }
        return 
    $output;
    }

    $verschluesselt=mycrypt("mein String","meinschluessel");
    echo 
    $verschlusselt."<br>";
    $entschluesselt=mycrypt($verschluesselt,"meinschluessel");
    echo 
    $entschluesselt."<br>"
    aber Achtung auf diese Art verschlüsselte Werte sind in der DB nicht sicher,
    wenn mit phpMyAdmin gearbeitet wird. phpMyAdmin kann die Sonderzeichen nicht handeln beim speichern !!!
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Danke TBT,

      werde es gleich mal probieren.
      Das "ACHTUNG" ist aber für mein Projekt irrelevant, da ich bei dem Skript nicht mit ner DB arbeite.

      Kommentar


      • #4
        Du könntest z.B. base64_encode und base64_decode verwenden.
        Oder einen der vielen Verschlüsselungsalgorithmen. z.b. DES etc.
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          Wie wär's hiermit? Es ist sicher etwas mehr Arbeit, als eine fertige PHP-Funktion zu verwenden (Ich kenne auch keine dieser Art), aber damit hast Du selbst in der Hand, wie sicher diese Methode sein soll:

          Schreibe Deine eigenen Ver- und Entschlüsselungsfunktionen!

          Bau Dir Deinen eigenen Schlüssel, z.B. "ASDefguhaSEes56Se5we5S7wef". Addiere jedes Zeichen des zu verschlüsselnden Textes mit dem Gegenstück des Schlüssels, also: Textzeichen_1 + Schlüsselzeichen_1, Textzeichen_2 + Schüsselzeichen_2, uws. Am Ende des Schlüssels fängst du vorne wieder an und machst im Text weiter. Die Addierungsergebnisse ergeben wieder neue Zeichen, die nach und nach den abzuspeichernden Text bilden. Du solltest nur darauf achten, dass die neuen Zeichen auch "echte Zeichen" sind; notfalls musst Du nicht-speicherbare Zeichen überspringen und u.U. wieder vorne in der Ascii-Tabelle anfangen.

          Der Schlüssel selbst könnte mit im Text stehen, vorne oder hinten, Du musst Dich nur auf eine Länge festlegen. Deine Entschlüsselungsfunktion geht entsprechend den Weg rückwärts: extrahiert den Schlüssel aus dem Text, subtrahiert die Schlüssel- von den übrigen Textzeichen und "überspringt" die "ungültigen Ascii-Codes rückwärts.

          Kommentar


          • #6
            hehe, das ist im Grunde genommen die gute alte Vigenère Methode. Aber total unsicher - hat man innerhalb von Sekunden geknackt. Vorrausgesetzt der Schlüssel ist nicht zu lang und er Text ist nicht zu kurz.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              Klar, mag sein, ich bin da kein Profi, ich habe mir gerade diese Methode aus den Fingern gesogen. Ich wusste nicht mal, dass ich damit das Rad neu erfunden habe, dass da ein Missiö... Wie heißt der? - Vigenère schon auf die gleiche Idee kam - auf die ich aber auch nicht besonders stolz bin...

              Aber letztendlich ging's ja bei zzet auch weniger um die Sicherheit; so wie ich's verstanden habe, sollte man nur nicht auf Anhieb den Text lesen können. Naja, während ich den Beitrag schrieb, trafen ohnehin gescheitere Antworten ein; ich hätt's mir auch gleich sparen können.

              Kommentar


              • #8
                Nene, nix da "sparen können"...
                Bin dankbar für JEDE Eurer Antworten.
                Werd jetzt mal schauen, wie ich's mache.

                Kommentar


                • #9
                  mein Script oben macht ja auch nichts anderes, außer das es eine bitweise or Verknüpfung ist
                  TBT

                  Die zwei wichtigsten Regeln für eine berufliche Karriere:
                  1. Verrate niemals alles was du weißt!


                  PHP 2 AllPatrizier II Browsergame

                  Kommentar


                  • #10
                    So, ich habe jetzt mal die mycrypt() - Lösung von TBT probiert, die auch wunderbar funktioniert, was die Ver- und Entschlüsselung angeht.
                    Allerdings treten jetzt andere Probleme auf.
                    Am Besten, ich erklär mal kurz, was ich damit machen möchte...

                    Ich habe eine TXT-Datei, in der Links zu verschiedenen Seiten stehen, also z.B. seite1.php, blabla.htm, seite2.php, test.html, test2.php

                    Diese TXT wird ausgelesen und die Links als Parameter $inc= in der URL übergeben. Da aber nicht jeder gleich sehen soll, welche Seite übergeben wird ($inc=seite1.php), da das ja schon ein kleines Sicherheitsloch ist (oder?) würde ich die zu übergebenden Parameter eben gerne verschlüsseln ($inc=CWa23IE) und in der Datei, die die Parameter entgegennimmt eben wieder entschlüsseln.

                    Das ganze klappt auch mit der Lösung von TBT ganz gut - nur leider nicht immer. Je nach Seitenname (bei meinem Schlüssel funktionieren z.B. Seitennamen, in denen eine 2 vorkommt absolut nicht), entschlüsselt das Skript die Seitennamen falsch -> ich kann mit dem Parameter nix mehr anfangen. Ich denke, das liegt hauptsächlich an irgendwelchen Sonderzeichen.
                    Deswegen denke ich, wäre es gut, wenn das Verschlüsselungsskript die Parameter nur in Buchstaben- und Zahlenkombinationen umwandelt (also KEINE Sonderzeichen), dann dürfte ja nix mehr schief gehen.

                    Oder gibt es für mein Vorhaben vielleicht sogar einen viel einfachere Lösung?? (ein Formular mit "hidden"-Field kommt leider aus anderen Gründen nicht in Frage.

                    Danke schonmal für Eure Hilfe!

                    Kommentar


                    • #11
                      das ist genau das Problem welches auch phpMyAdmin damit hat,
                      die Werte sind nicht URL-Safe

                      versuch mal den gecrypteten werd durch urlencode() und urldecode() zu jegen
                      TBT

                      Die zwei wichtigsten Regeln für eine berufliche Karriere:
                      1. Verrate niemals alles was du weißt!


                      PHP 2 AllPatrizier II Browsergame

                      Kommentar


                      • #12
                        Ok, scheint schon besser zu klappen, hab aber noch nicht alles getestet - DANKE!

                        Kann ich das urlencode() und urldecode() auch irgendwie schon in die Funktion mycrpyt() einbauen?

                        Kommentar


                        • #13
                          Vielleicht GANZ anders? Wie wäre es, wenn Du in den Link nur die Nummer der entsprechenden Seite in Deiner Seiten-TXT einbaust? Dann kannst Du Dir den ganzen Verschlüsselungskram schenken.

                          Also, in Deinem Beispiel beinhaltet die TXT:

                          seite1.php
                          blabla.htm
                          seite2.php
                          test.html
                          test2.php

                          und jetzt willst Du einen Link auf "seite2.php" setzen, dann wäre $inc=3. Dein Zielscript müsste also die 3. Zeile der TXT auslesen, um zu wissen, wohin es weiterleiten soll.

                          Wär' das noch ein Denkanstoß?

                          Kommentar


                          • #14
                            Danke für den Tipp, Andreas - die Lösung ist mir selbst aber schon auch eingefallen - geht aber aus diversen anderen Gründen nicht.
                            Werde das Skript komplett umschreiben - hab da schon ne Lösung im Kopf.

                            Trotzdem danke!
                            Gruß, zzet

                            P.S. Steht das "P" in Deinem Namen zufällig für Petzh...??

                            Kommentar


                            • #15
                              Nein, für Pohl.

                              Na dann, viel Erfolg.

                              Kommentar

                              Lädt...
                              X