[PHP] "Verschlüsselung" läuft schief :(

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Don Poncho, 31. März 2008 .

  1. 31. März 2008
    "Verschlüsselung" läuft schief

    Hallo!
    also folgendes, ich sollte eine "verschlüsselung" programieren bei der jeder buchstabe vom eingegebenen text durch einen anderen aus einer art geheim alphabeth ersetzt wird.
    das problem ist nur das er irgentwie nicht ganz das macht und ich nich weiss wieso

    Code:
    <?php
     if (isset($_POST['ok']))
     {
     $str_alph = $_POST['textbox'];
     $str_ralph = qrstufdpcukhumglyjzbeoiawx;
     
     for ($i = 0; $i < strlen($str_alph); $i++)
     {
     $arr_alph[] = substr ($str_alph, $i, 1);
     }
    
     for ($i = 0; $i < strlen($str_ralph); $i++)
     {
     $arr_ralph[] = substr ($str_ralph, $i, 1);
     }
    
     $posa=0;
     $posr=0;
     
     while ($posa<count($arr_alph)){
    
     if ($posr<=count($arr_ralph))
     {
     $bsa=$arr_alph[$posa];
     $bsr=$arr_ralph[$posr];
     $bsa=$bsr;
     $gt=$gt.$bsa;
     $posr++;
     } 
     else
     $posr=o;
    
     $posa++;
     }
    
     echo $gt;
     echo "<br>";
     }
    
     echo "<form action='rotorkomplex.php' method='POST'>
     <input type='text' name='textbox'>
     <input type='submit' name='ok' value='Und los...'>";
    ?>
    
    hoffe ich hab mich verständlich ausgedrückt und ihr könnt mir helfen
     
  2. 31. März 2008
    AW: "Verschlüsselung" läuft schief

    Habs mir nicht ganz angekuckt, aber vll. liegts daran das du $arr_ralph vorher nicht deklariert hast und dieses Array nur in der "For" Schleife existiert.
     
  3. 31. März 2008
    AW: "Verschlüsselung" läuft schief

    so habs überarbeitet (die forschleife war überflüssig)

    gibts noch formsachen oder halt, kann ich es noch einfacher halten?

    code siehe oben

    EDIT//

    also es läuft alles aber das problem ist das wenn der text länger als das geheimalphabet ist gehts nich weiter sondern er hört dann da auf!
    wieso? ich hab das doch extra mit der if else abfrage überprüft
     
  4. 31. März 2008
    AW: "Verschlüsselung" läuft schief

    mir ist aufgefallen dass du kleine syntax-fehler hast:
    PHP:
    <?
    $str_ralph  qrstufdpcukhumglyjzbeoiawx ;
    // ersetzen durch
    $str_ralph  "qrstufdpcukhumglyjzbeoiawx" ;
    ?>
    um ein string in array zu konventieren nimmst du einfach str_split().
     
  5. 1. April 2008
    AW: "Verschlüsselung" läuft schief

    Dein Script funktioniert überhaupt nicht ...Das einzige was passiert: Es werden je nach Anzahl der eingegebenen Buchstaben, gleichviele (nur bist 26) Buchstaben des "Geheim"-Alphabets ausgegeben, aber immer in dieser Reihenfolge (qrstufdpcukhumglyjzbeoiawx).

    Mit meinem überaus bescheidenen PHP-Wissen (funktioniert auch mit großen Strings):
    PHP:
    <? php
    # $eingabe ist die Variable aus dem Formular
    $eingabe = str_split ( "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" );

    # Original und Geheim Alphabet
    $orig_alph = str_split ( "abcdefghijklmnopqrstuvwxyz" );
    $new_alph = str_split ( "qrstufdpcukhumglyjzbeoiawx" );

    # Schleife sucht sich den Index-Wert des ersten/zweiten/... Buchstaben der Eingabevariablen im Original Alphabet und tauscht den Buchstaben mit dem aus dem Geheim Alphabet
    for( $i = 0 ; $i < count ( $eingabe ); $i ++) {
        for(
    $j = 0 ; $j < count ( $orig_alph ); $j ++) {
            if(
    $eingabe [ $i ]== $orig_alph [ $j ]) {
                echo 
    $new_alph [ $j ];
            }
        }
    }
    ?>
    Achja durch vertauschen der Alphabete kannst du den Text wieder entschlüsseln.
     
  6. 1. April 2008
    AW: "Verschlüsselung" läuft schief

    nene du hast was anderes gemacht!

    das sollte sozusagen eine "1-rotor-enigma" sein ^^
    sprich der buchstabe 1 von der eingabe wird durch den buchstaben 1 vom geheimalphabet (oder eben dem rotor) ersetzt.
    normalerweise sind da ja noch zwei andere rotoren hinter aber das sollte man nich machen...

    das geheim alphabet soll sozusagen immer wieder durchlaufen werden bis der eingegebene text zu ende ist das wars.

    bei dir werden ja bestimmte buchstaben durch festgelegte gegenstücke ersetzt.
    aber trotzdem danke für die tips

    bw habt ihr alle
     
  7. 1. April 2008
    AW: "Verschlüsselung" läuft schief

    ganz einfach bei deinem prob:
    die for-schleife ist so angelegt, das er bei $arr_ralph[25] aufhört!

    diese Änderung an der zweiten for-schleife sollte dein "geheimarray" immer länger bzw genausolang halten wie dein posttext:

    PHP:
        $count = 0 ;    
            for (
    $i  0 $i  strlen ( $str_ralph );  $i ++)
            {
                
    $count ++;    
                
    $arr_ralph [] =  substr  ( $str_ralph $i 1 );
                
    // routine erweitern, wenn der counter nicht die laenge von $str_alph erreicht hat
                // dein geheimpasswort wird wieder von anfang bis ende in die array gespeichert
                
    $i =( $i ==( strlen ( $str_ralph )- 1 ) &&  $count < strlen ( $str_alph )) ?  $i ;
            }
        unset(
    $count );
    Ich versteh es nur nich ganz^^

    Weil:
    peter ist dann bei dir qrstu
    und
    udolf ist qrstu

    Was bringen diese identischen Werte frage ich mich.
     
  8. 1. April 2008
    AW: "Verschlüsselung" läuft schief

    Also ich hab mal kurz das Rotor-Verschlüsselungs-Verfahren überflogen, und wenn ichs richtig verstanden habe, werden schon feste Buchstaben durch feste andere Buchstaben ersetzt. nur eben mehrere Male hintereinander mit verschiedenen Alphabeten, so dass das Prinzip nicht so einfach herausgefunden werden kann.

    Denn so wie du es jetzt hast, wäre es -wie schon gesagt wurde- recht sinnlos, das einzige was bei deinem Verfahren vom Originaltext erhalten bleibt ist die Länge
     
  9. 3. April 2008
    AW: "Verschlüsselung" läuft schief

    *hust* ROT13 *hust*
    ROT13 – Wikipedia

    als PHP-Beispiel: http://www.miranda.org/~jkominek/rot13/php/rot13.phtml

    Für andere Verschiebungen einfach den Faktor 13 anpassen!
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.