php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.09.2006, 14:46  
Neuer Benutzer
 
Registriert seit: 04.06.2006
Beiträge: 4
Ilinsekt
Standard Cäsarverschlüsselung in PHP

Hi!
Ich hab ein Prob: ich hab folgenden Code für eine modifizierte Variante der Cäsar-Verschlüsselung programmiert:
PHP-Code:
<html>
<head><title>starke Verschlüsselung</title></head>
<body>

<?php//Cäsar-Verschlüsselung
if (!isset($caesarv) or $caesarv==""){}
else
{
  
$Verschiebung='0';$i='0';$decode=urldecode($caesarv);
   while(
$i strlen($caesarv))
    {
      if (
$Verschiebung=='0')
      {
        for (
$Verschiebung=0;$Verschiebung<=10,$i<strlen($decode);$Verschiebung++,$i++)
        {
          
$verschluesselung .= chr(ord(urldecode($caesarv{$i}))+$Verschiebung);     //Diese Variable wird  mit error_reporting(E_ALL) als undefiniert bezeichnet.
          
if ($verschluesselung{$i}>255)
          {
            
$verschluesselung{$i}=$verschluesselung{$i}-255;
        }
          }
        }
      else if (
$Verschiebung=='10')
      {
        for (
$Verschiebung=10;$Verschiebung>=0,$i<strlen($decode);$Verschiebung--,$i++)
        {
          
$verschluesselung .= chr(ord(urldecode($caesarv{$i}))+$Verschiebung);
          if (
$verschluesselung{$i}>255)
          {
            
$verschluesselung{$i}=$verschluesselung{$i}-255;
        }
          }
      }
      }
    echo 
htmlentities($verschluesselung,ENT_QUOTES,'ISO-8859-1');
}

//Cäsar-Entschlüsselung
  
$Verschiebung='0';$a='0';$urldecode=rawurldecode($verschluesselung);
   while(
$a strlen($urldecode))
    {
      if (
$Verschiebung=='0')
      {
        for (
$Verschiebung=0;$Verschiebung<=10,$a<strlen($urldecode);$Verschiebung++,$a++)
        {
          
$entschluesselung .= chr(ord(rawurldecode($verschluesselung{$a}))-$Verschiebung);    //Diese Variable wird  mit error_reporting(E_ALL) als undefiniert bezeichnet.
          
if ($entschluesselung{$a}<0)
          {
            
$entschluesselung{$a}=255+$enschluesselung{$a};
        }
          }
        }
     else if (
$Verschiebung=='10')
      {
        for (
$Verschiebung=10;$Verschiebung>=0,$a<strlen($urldecode);$Verschiebung--,$a++)
        {
          
$entschluesselung .= chr(ord(rawurldecode($verschluesselung{$a}))-$Verschiebung);
          if (
$entschluesselung{$a}<0)
          {
            
$entschluesselung{$a}=255+$enschluesselung{$a};
        }
          }
      }
      }
    echo 
"


 $entschluesselung 


"
.htmlentities($urldecode,ENT_QUOTES,'ISO-8859-1');

?>



Hier können Sie einen beliebigen Text mit einer auf der Cäsar-Verschlüsselung basierenden Technik verschlüsseln!
<form action='caesarverschluesselung.php' method='get' accept-charset="ISO-8859-1">
<table border='0' cellpadding='0' cellspacing='4'>
<tr>
<td align='right'>Text:</td>
<td><textarea class='mOFF' cols='50' rows='10' name='caesarv'></textarea></td>
</tr><tr>
<td align='right'><input type='submit' value='Verschlüsseln!'></td>
</tr></table></form>





Und hier können Sie einen mit dieser Seite verschlüsselten Text wieder entschlüsseln!
<form action='caesarverschluesselung.php' method='get' accept-charset="ISO-8859-1">
<table border='0' cellpadding='0' cellspacing='4'>
<tr>
<td align='right'>Text:</td>
<td><textarea class='mOFF' cols='50' rows='10' name='verschluesselung'></textarea></td>
</tr><tr>
<td align='right'><input type='submit' value='Entschlüsseln!'></td>
</tr></table></form>


</body>
</html>
Dabei wechselt die Verschiebung von 0 bis 10 und zurück.
Das Problem: Solange die Entschlüsselung auf dem Server abläuft, ist alles richtig. Wenn ich das Verschlüsselte in die untere Eingabemaske eingebe, kommt nur Müll mit ein paar richtigen Zeichen raus, vor allem bei längeren Texten. An der Kommunikation zwischen Browser und Server liegt es nicht, wie die Zeile 65 beweist.

Kann mir jemand helfen?

MfG, Ilinsekt

edit: code-Tags in php-Tags umgewandelt. Variablen, die mit error_reporting(E_ALL) als undefiniert bezeichnet werden, mit Kommentaren markiert.
Ilinsekt ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.09.2006, 16:04  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

1. Zunächst würde ich mal vorschlagen, dass Du uns verrätst, wo Zeile 66 denn sein soll. So auf Anhieb sieht man das nicht.

2. Dann solltest Du den Code in PHP-Tags einpacken und nicht in Code-Tags. Dann klappt das auch mit dem Syntax-Highlighting.

3. Und abschließend solltest Du die Suche hier im Forum mal nach register_globals und nach error_reporting(E_ALL) befragen.

Mit dem Ver- und Entschlüssel hat das zwar nichts zu tun, aber die ersten beiden Dinge könnten bewirken, dass sich wirklich mal jemand den Code ansieht. Das was Du gepostet hast, ist nicht wirklich angenehm zu lesen.
Benutzt dazu bitte die Editier-Funktion und poste nicht den ganzen Code neu.

Der dritte Punkte sollte in jedem Script beachtet werden.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 12.09.2006, 16:48  
Erfahrener Benutzer
 
Registriert seit: 01.02.2004
Beiträge: 550
cytrobic
Standard

Sind da welche sonderzeichen drin die evtl escaped werden ?
Zeilenumbrüche in textareas werden auch escaped
__________________
keine
cytrobic ist offline  
Alt 14.09.2006, 13:32  
Neuer Benutzer
 
Registriert seit: 04.06.2006
Beiträge: 4
Ilinsekt
Standard

@Der_Gerhard:
Ich hab das Script mal mit error_reporting(E_ALL) ausgeführt. Wenn ich in der oberen Eingabemaske was verschlüssele, zeigt er mir zwar an, dass zwei Variablen in den Zeilen 19 und 49 (im Code oben sind die Zeilen verschoben, weil das Forum oben einige Zeilen frei gelassen hat) undefiniert sind, aber es klappt trotzdem alles.

Mein Webhoster(www.funpic.de) hat register_globals auf on und die ini_set aus Sicherheitsgründen deaktiviert.

@cytrobic:
Ich formatiere die Eingabe mit rawurldecode. Ich habe mal das Verschlüsselte mit meiner Eingabe verglichen (Zeile 62), alles stimmt.
Ilinsekt ist offline  
Alt 14.09.2006, 13:35  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Ilinsekt
@Der_Gerhard:
Ich hab das Script mal mit error_reporting(E_ALL) ausgeführt. Wenn ich in der oberen Eingabemaske was verschlüssele, zeigt er mir zwar an, dass zwei Variablen in den Zeilen 19 und 49 (im Code oben sind die Zeilen verschoben, weil das Forum oben einige Zeilen frei gelassen hat) undefiniert sind, aber es klappt trotzdem alles.
Und was hält Dich nun davon ab, uns mitzuteilen, welche Variablen undefiniert sind oder die Zeilen 19 und 49 im obigen Code mal zu markieren, indem Du nen Kommentar mit der Zeilennummer reineditierst?

Ist es vielleicht eine fehlende Initialisierung von $i?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php cäsar verschlüsselung, caesar verschlüsselung php, caesar chiffre php, cäsar verschlüsselung php, caesar verschlüsselung mit php, cäsars chiffre php, caesar verschlüsselung online, verschlüsselung mit php caesar, caesar verschlüsselung php code, modifizierten caesar-verschlüsselung, php code für caesar verschlüsselung, php caesar, cäsar online chiffre, php caesar verschlüsselung, cäsar verschiebung php, verschlüsselung decode nr, php verschlüsselung ord, caesar verschlüsselung php vorlage, php verschlüsselung ord cäser, cäsars verschlüsselung php

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.