21. Oktober 2011

Dechiffrieren leicht gemacht in PHP

21. Oktober 2011 - Geschrieben von Martin - Keine Kommentare

Gerade haben meine Anwendungsentwicklungsmitschüler einen kleinen Chiffrieralgorithmus gebastelt (oder sie haben eine Drehscheibe aus Papier genutzt, aber ich hoffe ersteres :D) und mir verschlüsselte Nachrichten geschickt. Eben hab ich in 10 min folgendes „hingepfuscht“:

<?php
$string = 'oerr pyhamk hew irxwglpyiwwipr';
$splitted = str_split($string);
$abc = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
$i = 0;
while($i <= count($abc)) {
	$newString = '';
	foreach($splitted as $char) {
		if($char != ' ') {
			$newChar = 0;
			$charNum = array_search($char, $abc);
			$newCharNum = $charNum + $i;
			if($newCharNum >= count($abc)) {
				$oversize = $newCharNum - count($abc);
				$newCharNum = $oversize;
			}
			$newChar = $abc[$newCharNum];
			$newString .= $newChar;
		} else {
			$newString .= ' ';
		}
	}
	echo '<p>'.$i.': '.$newString.'</p>';
	$i++;
}


Das einzig kniffelige war der Sprung wenn der Integer $i länger ist als die noch verbleibenden Zeichen, aber dann einfach die Anzahl der Zeichen vom Neuen Char Nummern Wert abziehen und wieder von vorn beginnen :)

Wer nun zu faul ist die einzelnen Zeichenketten durchzuchecken, kann selbstverständlich von ein Wörterbuch anbinden und die gefunden Worte gegenprüfen (so kann man ggf. auch Groß und Kleinschreibung mit einbeziehen).

Schreibe einen Kommentar