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.