Polybius-Chiffre: Quellcode
Erstellt am 6. Januar 2011 von compufreak
Zurück zum Tool
Erklärung der ‘Polybius-Chiffre’
PHP-Implementierung:
Dieses Script hat mir einiges an Mühe bereitet, damit es in den verschiedensten Situationen richtig arbeitet. Ich stelle diesen Code hier öffentlich zur Verfügung. Allerdings finde ich, dass das Gesetz der Fairness es gebietet, meinen Namen oder einen Link zu meiner Website zu setzen, sofern dieser Code anderweitig zum Einsatz kommt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?php // Erstelle Array zur Transposition $polybius=array( 'a' => '11', 'b' => '12', 'c' => '13', 'd' => '14', 'e' => '15', 'f' => '21', 'g' => '22', 'h' => '23', 'j' => '24', 'i' => '24', 'k' => '25', 'l' => '31', 'm' => '32', 'n' => '33', 'o' => '34', 'p' => '35', 'q' => '41', 'r' => '42', 's' => '43', 't' => '44', 'u' => '45', 'v' => '51', 'w' => '52', 'x' => '53', 'y' => '54', 'z' => '55', ); // Erstelle Array zur Entschlüsselung $polybius_de=array_flip($polybius); //Ermittle Methode (Ver-/Entschlüsseln) if($dir=="en"){ for($counter=0;strlen($text)>$counter;$counter++){ $zeichen=substr($text,$counter,1); print(((ord($zeichen)>64 && ord($zeichen)<91) || (ord($zeichen)>96 && ord($zeichen)<123))?strtr($zeichen, $polybius):$zeichen); } } else { for($counter=0;strlen($text)>$counter;$counter=$counter+2){ if(ord(substr($text,$counter,1))<48 || ord(substr($text,$counter,1))>57){ print(substr($text,$counter,1)); $counter--; } else { print(((ord(substr($text,$counter,1))>47 && ord(substr($text,$counter,1))<58) && (ord(substr($text,$counter+1,1))>47 && ord(substr($text,$counter+1,1))<58))?$polybius_de[substr($text,$counter,2)]:$zeichen); } } } ?> |
