Polybius-Chiffre: Quellcode


  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);
}
}
}
?>

Facebook Twitter RSS MyNameIsE YouTube