0
6
Fork 0

Add beaufort cipher test.
The build was successful. Details

Dieser Commit ist enthalten in:
Rafal Kupiec 2019-12-17 14:41:27 +01:00
Ursprung 9d762a2350
Commit ab36234ff3
Signiert von: belliash
GPG-Schlüssel-ID: 4E829243E0CFE6B4
2 geänderte Dateien mit 44 neuen und 0 gelöschten Zeilen

43
tests/beaufort_cipher.aer Normale Datei
Datei anzeigen

@ -0,0 +1,43 @@
class Beaufort {
private string $cipher;
public string __construct(string $text, string $key) {
string $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for(int $i = 0; $i < strlen($text); $i++) {
int $j;
char $c0 = $text[$i];
char $c1 = $key[$i % strlen($key)];
int $start = 0;
for($j = 0; $j < 26; $j++) {
if($alphabet[$j] == strtoupper($c0)) {
$start = $j;
break;
}
}
int $offset = 0;
for($j = $start; $j < $start + 26; $j++) {
int $letter = $j %26;
if($alphabet[$letter] == strtoupper($c1)) {
break;
}
$offset++;
}
$this->cipher += $alphabet[$offset];
}
}
public string getCipher() {
return $this->cipher;
}
}
class Program {
public void main() {
object $beaufort = new Beaufort('thisisasecretmessage', 'youwillneverguessit');
var_dump($beaufort->getCipher());
}
}

1
tests/beaufort_cipher.exp Normale Datei
Datei anzeigen

@ -0,0 +1 @@
string(20 'FHMEATLVATNNNIAAAINU')