nachdem ich neulich mit eurer hilfe den caesar-chiffre hinbekommen habe hab ich mich jez rangesetzt die vignere-verschlüsselung zu versuchen. diese funktioniert so das man einen text hat (z.B.:"forum hilfe ist toll" schleim ) und ein schlüsselwort (zB: "peter") nun wird den buchstabe des schlüsselwortes eine ordnungszahl zugeordnet: a=0 b=1 c=2 usw. und der text wird mit der jeweils zugehörigen stelle des schlüsselworts kodiert. im beispiel: erster buchstabe text="f"=6; erster buchstabe schlüsselwort="p"=16; das f wird um 16 stellen verschoben ist nun 6(f)+16(p)=22=v. der 2. buchstabe vom text wird mit dem 2. des schlüsselworts kodiert also o+e=t der 3. mit dem 3. usw. das hat prima funktioniert. nun hatte ich bloß 2 probleme: 1. wenn das schlüsselwort länger ist als der text hat er 0+buchstabe aus schlüsselwort gerechnet obwohl der text dort beendet sein sollte. dies habe ich mit substr gelöst indem das schlüsselwort einfach abgeschnitten wurde. das 2. problem triit nun auf wenn der text länger ist als das schlüsselwort. meine idee ist dass er wenn der stellenzähler des schlüsselwortes die länge des schlüsselwortes errreicht hat auf 0 springt. naja auf jeden fall funzt es nich.
Der Code:
<form action="form3.php" method="post">
<textarea name="text2" cols="80" rows="17" id="feld">
<?php
$code = $_POST['code'];
$code = strtolower($code);
$text = $_POST['text2'];
$text = strtolower($text);
$wahl = $_POST['wahl'];
$laenget = strlen($text);
$laengec = strlen($code);
$code = substr($code, 0, $laenget);
$i = 0;
$d = 0;
if (strcmp(urlencode($code),$code))
{
echo('Bitte benutze für das Schlüsselwort auschließlich Buchstaben');
}
else
{
if ( $wahl == 'ver')
{
while( $i < $laenget)
{
if($d=$laengec)
{
$d=0;
$buch = $text[$i];
$cbuch = $code[$d];
$zahl = ord($cbuch)-97;
$bin = ord($buch);
$neubin = $bin+$zahl;
$fertig = chr($neubin);
echo($fertig);
$i=$i+1;
$d=$d+1;
}
else
{
$buch = $text[$i];
$cbuch = $code[$d];
$zahl = ord($cbuch)-97;
$bin = ord($buch);
$neubin = $bin+$zahl;
$fertig = chr($neubin);
echo($fertig);
$i=$i+1;
$d=$d+1;
}
}
}
else
{
while( $i < $laenget)
{
if($d=$laengec)
{
$d=0;
$buch = $text[$i];
$cbuch = $code[$d];
$zahl = ord($cbuch)-97;
$bin = ord($buch);
$neubin = $bin-$zahl;
$fertig = chr($neubin);
echo($fertig);
$i=$i+1;
$d=$d+1;
}
else
{
$buch = $text[$i];
$cbuch = $code[$d];
$zahl = ord($cbuch)-97;
$bin = ord($buch);
$neubin = $bin-$zahl;
$fertig = chr($neubin);
echo($fertig);
$i=$i+1;
$d=$d+1;
}
}
}
?>
</textarea>
<input type="text" name="code" id="feld"></input>
<input type="radio" name="wahl" value="ver"></input>verschlüsseln
<input type="radio" name="wahl" value="ent"></input>entschlüsseln
<input type="submit" value="los gehts" id="feld"></input>
</form>
Alles anzeigen
würde mich freuen wenn mir jemand helfen könnte