Texte verschlüsseln
Posted July 19, 2010 // PHP // 0 views
Ich wurde heute auf einen Thread im Forum de Luxx von einem Benutzer namens john_ aufmerksam; Titel des Beitrags: “Texte verschlüsseln”. Besagter Benutzer suchte ein Script zur Verschlüsselung von Texten – dabei sollen die Buchstaben des Textes in einen numerischen Wert umgewandelt werden und mit einem Summanden addiert werden um eine Art “Verschleierung” zu erreichen (oder anders formuliert: damit man das Passwort nicht ganz so schnell entschlüsseln kann).
Im ersten Moment erinnerte mich das Ganze an ein Buch von Dan Brown: Digital Fortress / Diabolus. In dem Buch geht es hauptsächlich um Kryptographie – und auch wenn das Buch von vorne bis hinten mit Logik-Fehlern in Hinsicht auf Kryptographie geschmückt ist, musste ich an den im Buch verwendeten “Private Key” denken. Im Buch konnten verschlüsselte Passwörter nur mit Hilfe des “Private Keys” entschlüsselt werden – prinzipiell genau das selbe wie es de Luxx-Nutzer john_ wollte.
Da mir der Nachmittag einiges an Zeit bot versuchte ich diese Art von Verschlüsselung umzusetzen… mit Erfolg. Zwar ist das Script nur “quick & dirty” geschrieben, doch erfüllt es seinen Zweck. Das fertige Script lässt sich hier finden. Und hier noch der (relative simple) Quellcode:
$elem = array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5,
'f' => 6,
'g' => 7,
'h' => 8,
'i' => 9,
'j' => 10,
'k' => 11,
'l' => 12,
'm' => 13,
'n' => 14,
'o' => 15,
'p' => 16,
'q' => 17,
'r' => 18,
's' => 19,
't' => 20,
'u' => 21,
'v' => 22,
'w' => 23,
'x' => 24,
'y' => 25,
'z' => 26,
'A' => 27,
'B' => 28,
'C' => 29,
'D' => 30,
'E' => 31,
'F' => 32,
'G' => 33,
'H' => 34,
'I' => 35,
'J' => 36,
'K' => 37,
'L' => 38,
'M' => 39,
'N' => 40,
'O' => 41,
'P' => 42,
'Q' => 43,
'R' => 44,
'S' => 45,
'T' => 46,
'U' => 47,
'V' => 48,
'W' => 49,
'X' => 50,
'Y' => 51,
'ß' => 52,
'ö' => 53,
'ä' => 54,
'ü' => 55
);
function strReplaceAssoc( array $replace, $subject ) {
return str_replace( array_keys( $replace ), array_values( $replace ), $subject );
}
function encrypt( $input, $addend ) {
global $elem;
foreach( $elem as $letter => $code ) {
$elem[$letter] = $code + $addend.' ';
}
$input = str_replace(' ', ' - ', $input);
$str = strReplaceAssoc( $elem, $input );
return $str;
}
function decrypt( $input, $addend ) {
global $elem;
$str = '';
$reversedElem = array_flip($elem);
foreach( $reversedElem as $code => $letter ) {
$reversedElem[ $code + $addend ] = $letter;
}
$exp = explode( ' ', $input );
foreach($exp as $expr) {
if($expr == '-') $str .= ' ';
$str .= $reversedElem[$expr];
}
return $str;
}
0 Comments
Who?
19 Jahre jung und ich bin Hobbyprogrammierer!
Archives
Categories