Advertisement
Metts

Jules verne crypter

Mar 25th, 2012
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.55 KB | None | 0 0
  1. <?php
  2.     /*
  3.         THX TO Keveqiah http://keveqiah.hu/
  4.         Coded by Metts
  5.         metts.blog.hu
  6.        
  7.         Titkosítás menete:
  8.         Válasszunk egy mondatot pl: Jarriquez bíró nagyon okos
  9.         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.
  10.         Tehát:
  11.         Jarriquez   bíró  nagyon  okos
  12.         423423423   4234    234234  2342
  13.         Most írjuk még le az ábécét, és lássuk el sorszámmal az egyes betűket, így:
  14.         a   1       f   8       m   15      s   22
  15.         á  2       g   9       n   16      t   23
  16.         b   3       h   10      o   17      u   24
  17.         c   4       i   11      ö  18      ü  25
  18.         d   5       j   12      p   19      v   26
  19.         e   6       k   13      q   20      x   27
  20.         é  7       l   14      r   21      y   28
  21.                                 z   29
  22.        
  23.         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.
  24.         A választott mondat első szava, a Jarriquez ezek szerint így íródik le:
  25.         J   +   4   =   n
  26.         a   +   2   =   b
  27.         r   +   3   =   u
  28.         r   +   4   =   ü
  29.         i   +   2   =   k
  30.         q   +   3   =   t
  31.         u   +   4   =   y
  32.         e   +   2   =   f
  33.         z   +   3   =   b
  34.         vagyis egybe: nbuüktyfb, s a mondat következő szavai is ilyen furcsák lesznek, ha a betűket átírjuk.
  35.         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.
  36.         Tehát : nbuüktyfb
  37.     */
  38.    
  39.    
  40.     //$string_to_crypt  = "privat_uzenet_mettsnek_a_cim_almaskompot_megkapszfeladatot";
  41.     $string_to_crypt  = "almaskompotyz";
  42.     $crypt_code       = "4581";
  43.     $abc_table        = "{aábcdeéfghijklmnoöpqrstuüvxyz} (29) ";
  44.     $abc = array(   "1" => "a" , "2" => "á" , "3" => "b" ,
  45.                     "4" => "c" , "5" => "d" , "6" => "e" ,
  46.                     "7" => "é" , "8" => "f" , "9" => "g" ,
  47.                     "10" => "h", "11" => "i", "12" => "j",
  48.                     "13" => "k", "14" => "l", "15" => "m",
  49.                     "16" => "n", "17" => "o", "18" => "ö",
  50.                     "19" => "p", "20" => "q", "21" => "r",
  51.                     "22" => "s", "23" => "t", "24" => "u",
  52.                     "25" => "ü", "26" => "v", "27" => "x",
  53.                     "28" => "y", "29" => "z"
  54.                 );
  55.    
  56.    
  57.     $string_to_crypt = str_replace("_", "",$string_to_crypt);
  58.    
  59.     /* CRYPTER */  
  60.     print "<h4>Crypter</h4>";
  61.     $split_str = str_split($string_to_crypt);
  62.     $split_code= str_split($crypt_code);   
  63.  
  64.     for($i = 0; $i<strlen($string_to_crypt);$i++) {
  65.         $crypt_code .= $crypt_code;
  66.             $crypt_code = substr($crypt_code,0,strlen($string_to_crypt));
  67.     }
  68.        
  69.     $crypted_string = "";
  70.     for($i = 0; $i<strlen($string_to_crypt);$i++)
  71.     {
  72.         for($y = 1; $y<=count($abc); $y++) {
  73.             if($abc[$y] == $split_str[$i]) {
  74.                 if(($y + $crypt_code[$i]) > count($abc))
  75.                 {
  76.                     $both = ($y + $crypt_code[$i]) - count($abc);
  77.                     //print $abc[$y]." => ".$y." + ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
  78.                     $crypted_string .= $abc[$both];
  79.                 }
  80.                 else
  81.                 {
  82.                     $both = $y + $crypt_code[$i];
  83.                     //print $abc[$y]." => ".$y." + ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
  84.                     $crypted_string .= $abc[$both];
  85.                 }
  86.             }
  87.         }
  88.     }
  89.     print "
  90.         String___: <b>".$string_to_crypt."</b> (".strlen($string_to_crypt).")<br/>
  91.         Code____: <b>".$crypt_code."</b> <br/>
  92.         Crypted__: <b>".$crypted_string."</b> (".strlen($crypted_string).") <br/>
  93.         ABC_TABLE: <b>".$abc_table."</b>";
  94.    
  95.     //DECRYPTER
  96.     print "<h4>Decrypter</h4>";
  97.     $split_str_crypted = str_split($crypted_string);
  98.     $decrypted_string = "";
  99.     for($i = 0; $i<strlen($crypted_string);$i++)
  100.     {
  101.         for($y = 1; $y<=count($abc); $y++) {
  102.             if($abc[$y] == $split_str_crypted[$i]) {
  103.                 if($y - $crypt_code[$i] <= 0)
  104.                 {
  105.                     $both = (count($abc) - $crypt_code[$i]) + $y;
  106.                     //print $abc[$y]." => ".$y." - ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
  107.                     $decrypted_string .= $abc[$both];               }
  108.                 else
  109.                 {
  110.                     $both = $y - $crypt_code[$i];
  111.                     //print $abc[$y]." => ".$y." - ".$crypt_code[$i]." => ".$abc[$both]." (".$both.")<br/>";
  112.                     $decrypted_string .= $abc[$both];
  113.                 }
  114.             }
  115.         }
  116.     }
  117.     print "
  118.         Crypted string__: <b>".$crypted_string."</b> (".strlen($crypted_string).") <br/>
  119.         Code_________: <b>".$crypt_code."</b> <br/>
  120.         Decrypted string: <b>".$decrypted_string."</b> (".strlen($decrypted_string).") <br/>
  121.         ABC_TABLE_______: <b>".$abc_table."</b>";
  122.  
  123. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement