Saturday, April 7, 2012
Jules verne crypter
<?php
/*
THX TO Keveqiah http://keveqiah.hu/
Coded by Metts
metts.blog.hu
Titkosítás menete:
Válasszunk egy mondatot pl: Jarriquez bíró nagyon okos
Most válasszunk egy számot, mondjuk, egy háromjegyű számot. Legyen ez a szám 423. Most az előbb választott mondat betűit külön-külön leírjuk, aztán aláírjuk a sifreként választott számot.
Tehát:
Jarriquez bíró nagyon okos
423423423 4234 234234 2342
Most írjuk még le az ábécét, és lássuk el sorszámmal az egyes betűket, így:
a 1 f 8 m 15 s 22
á 2 g 9 n 16 t 23
b 3 h 10 o 17 u 24
c 4 i 11 ö 18 ü 25
d 5 j 12 p 19 v 26
e 6 k 13 q 20 x 27
é 7 l 14 r 21 y 28
z 29
Ezek után nézzük csak a választott mondatot. Az első betű j, szám szerinti jele a 4. Az ábécében megkeresem a j betűt, szám szerinti jele 12. 12 + 4= 16, a j betűt tehát a 16-os betű, vagyis az n helyettesíti. A választott mondat második betűje az a, számjele 2, vagyis az a helyett a mi titkosírásunkban b-t írunk.
A választott mondat első szava, a Jarriquez ezek szerint így íródik le:
J + 4 = n
a + 2 = b
r + 3 = u
r + 4 = ü
i + 2 = k
q + 3 = t
u + 4 = y
e + 2 = f
z + 3 = b
vagyis egybe: nbuüktyfb, s a mondat következő szavai is ilyen furcsák lesznek, ha a betűket átírjuk.
Az ábécé végén levő betűk esetében is egyszerű a megoldás. Nézzük például a nevem végén szereplő z betűt. Az utána három hellyel hátrább szereplő betűvel kellene helyettesítenünk, minthogy azonban a fölírt ábécében utolsóként szerepel, visszamegyek, és az ábécé első betűjénél kezdek el számolni, vagyis: z + 3 = b.
Tehát : nbuüktyfb
*/
//$string_to_crypt = "privat_uzenet_mettsnek_a_cim_almaskompot_megkapszfeladatot";
$string_to_crypt = "almaskompotyz";
$crypt_code = "4581";
$abc_table = "{aábcdeéfghijklmnoöpqrstuüvxyz} (29) ";
$abc = array( "1" => "a" , "2" => "á" , "3" => "b" ,
"4" => "c" , "5" => "d" , "6" => "e" ,
"7" => "é" , "8" => "f" , "9" => "g" ,
"10" => "h", "11" => "i", "12" => "j",
"13" => "k", "14" => "l", "15" => "m",
"16" => "n", "17" => "o", "18" => "ö",
"19" => "p", "20" => "q", "21" => "r",
"22" => "s", "23" => "t", "24" => "u",
"25" => "ü", "26" => "v", "27" => "x",
"28" => "y", "29" => "z"
);
$string_to_crypt = str_replace("_", "",$string_to_crypt);
/* CRYPTER */
print "<h4>Crypter</h4>";
$split_str = str_split($string_to_crypt);
$split_code= str_split($crypt_code);
for($i = 0; $i<strlen($string_to_crypt);$i++) {
$crypt_code .= $crypt_code;
$crypt_code = substr($crypt_code,0,strlen($string_to_crypt));
}
$crypted_string = "";
for($i = 0; $i<strlen($string_to_crypt);$i++)
{
for($y = 1; $y<=count($abc); $y++) {
if($abc[$y] == $split_str[$i]) {
if(($y + $crypt_code[$i]) > count($abc))
{
$both = ($y + $crypt_code[$i]) - count($abc);
//print $abc[$y]." => ".$y." + ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
$crypted_string .= $abc[$both];
}
else
{
$both = $y + $crypt_code[$i];
//print $abc[$y]." => ".$y." + ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
$crypted_string .= $abc[$both];
}
}
}
}
print "
String___: <b>".$string_to_crypt."</b> (".strlen($string_to_crypt).")<br/>
Code____: <b>".$crypt_code."</b> <br/>
Crypted__: <b>".$crypted_string."</b> (".strlen($crypted_string).") <br/>
ABC_TABLE: <b>".$abc_table."</b>";
//DECRYPTER
print "<h4>Decrypter</h4>";
$split_str_crypted = str_split($crypted_string);
$decrypted_string = "";
for($i = 0; $i<strlen($crypted_string);$i++)
{
for($y = 1; $y<=count($abc); $y++) {
if($abc[$y] == $split_str_crypted[$i]) {
if($y - $crypt_code[$i] <= 0)
{
$both = (count($abc) - $crypt_code[$i]) + $y;
//print $abc[$y]." => ".$y." - ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
$decrypted_string .= $abc[$both]; }
else
{
$both = $y - $crypt_code[$i];
//print $abc[$y]." => ".$y." - ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
$decrypted_string .= $abc[$both];
}
}
}
}
print "
Crypted string__: <b>".$crypted_string."</b> (".strlen($crypted_string).") <br/>
Code_________: <b>".$crypt_code."</b> <br/>
Decrypted string: <b>".$decrypted_string."</b> (".strlen($decrypted_string).") <br/>
ABC_TABLE_______: <b>".$abc_table."</b>";
?>
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment