Simple Crypting

Cryptography
User avatar
chokito
Posts: 10
Joined: Sun Oct 15, 2017 9:20 pm

Simple Crypting

Postby chokito » Wed Aug 22, 2018 7:40 pm

Code: Select all

<?

class Cypher_dKe
{
   var $data = array();
   var $K = array(
      0x493e0,   0x61a80,   0x7a120,   0x927c0,   0xaae60,   
      0xc3500,   0xdbba0,   0xf4240,   0x10c8e0,   0x124f80,   
      0x13d620,   0x155cc0,   0x16e360,   0x186a00,   0x19f0a0,   
      0x1b7740,   0x1cfde0,   0x1e8480,   0x200b20,   0x2191c0,   
      0x231860,   0x249f00,   0x2625a0,   0x27ac40,   0x2932e0,   
      0x2ab980,   0x2c4020,   0x2dc6c0,   0x2f4d60,   0x30d400,   
      0x325aa0,   0x33e140,   0x3567e0,   0x36ee80,   0x387520,   
      0x39fbc0,   0x3b8260,   0x3d0900,   0x3e8fa0,   0x401640,   
      0x419ce0,   0x432380,   0x44aa20,   0x4630c0,   0x47b760,   
      0x493e00,   0x4ac4a0,   0x4c4b40,   0x4dd1e0,   0x4f5880,   
      0x50df20,   0x5265c0,   0x53ec60,   0x557300,   0x56f9a0,   
      0x588040,   0x5a06e0,   0x5b8d80,   0x5d1420,   0x5e9ac0,   
      0x602160,   0x61a800,   0x632ea0,   0x64b540,   0x663be0,   
      0x67c280,   0x694920,   0x6acfc0,   0x6c5660,   0x6ddd00,   
      0x6f63a0,   0x70ea40,   0x7270e0,   0x73f780,   0x757e20,   
      0x7704c0,   0x788b60,   0x7a1200,   0x7b98a0,   0x7d1f40,   
      0x7ea5e0,   0x802c80,   0x81b320,   0x8339c0,   0x84c060,   
      0x864700,   0x87cda0,   0x895440,   0x8adae0,   0x8c6180,   
      0x8de820,   0x8f6ec0,   0x90f560,   0x927c00,   0x9402a0,   
      0x958940,   0x970fe0,   0x989680,   0x9a1d20,   0x9ba3c0,   
      0x9d2a60,   0x9eb100,   0xa037a0,   0xa1be40,   0xa344e0,   
      0xa4cb80,   0xa65220,   0xa7d8c0,   0xa95f60,   0xaae600,   
      0xac6ca0,   0xadf340,   0xaf79e0,   0xb10080,   0xb28720,   
      0xb40dc0,   0xb59460,   0xb71b00,   0xb8a1a0,   0xba2840,   
      0xbbaee0,   0xbd3580,   0xbebc20,   0xc042c0,   0xc1c960,   
      0xc35000,   0xc4d6a0,   0xc65d40,   0xc7e3e0,   0xc96a80,   
      0xcaf120,   0xcc77c0,   0xcdfe60,   0xcf8500,   0xd10ba0,   
      0xd29240,   0xd418e0,   0xd59f80,   0xd72620,   0xd8acc0,   
      0xda3360,   0xdbba00,   0xdd40a0,   0xdec740,   0xe04de0,   
      0xe1d480,   0xe35b20,   0xe4e1c0,   0xe66860,   0xe7ef00,   
      0xe975a0,   0xeafc40,   0xec82e0,   0xee0980,   0xef9020,   
      0xf116c0,   0xf29d60,   0xf42400,   0xf5aaa0,   0xf73140,   
      0xf8b7e0,   0xfa3e80,   0xfbc520,   0xfd4bc0,   0xfed260,   
      0x1005900,   0x101dfa0,   0x1036640,   0x104ece0,   0x1067380,   
      0x107fa20,   0x10980c0,   0x10b0760,   0x10c8e00,   0x10e14a0,   
      0x10f9b40,   0x11121e0,   0x112a880,   0x1142f20,   0x115b5c0,   
      0x1173c60,   0x118c300,   0x11a49a0,   0x11bd040,   0x11d56e0,   
      0x11edd80,   0x1206420,   0x121eac0,   0x1237160,   0x124f800,   
      0x1267ea0,   0x1280540,   0x1298be0,   0x12b1280,   0x12c9920,   
      0x12e1fc0,   0x12fa660,   0x1312d00,   0x132b3a0,   0x1343a40,   
      0x135c0e0,   0x1374780,   0x138ce20,   0x13a54c0,   0x13bdb60,   
      0x13d6200,   0x13ee8a0,   0x1406f40,   0x141f5e0,   0x1437c80,   
      0x1450320,   0x14689c0,   0x1481060,   0x1499700,   0x14b1da0,   
      0x14ca440,   0x14e2ae0,   0x14fb180,   0x1513820,   0x152bec0,   
      0x1544560,   0x155cc00,   0x15752a0,   0x158d940,   0x15a5fe0,   
      0x15be680,   0x15d6d20,   0x15ef3c0,   0x1607a60,   0x1620100,   
      0x16387a0,   0x1650e40,   0x16694e0,   0x1681b80,   0x169a220,   
      0x16b28c0,   0x16caf60,   0x16e3600,   0x16fbca0,   0x1714340,   
      0x172c9e0,   0x1745080,   0x175d720,   0x1775dc0,   0x178e460,   
      0x17a6b00,   0x17bf1a0,   0x17d7840,   0x17efee0,   0x1808580,   
      0x1820c20,   0x18392c0,   0x1851960,   0x186a000,   0x18826a0,   
      0x189ad40,   0x18b33e0,   0x18cba80,   0x18e4120,   0x18fc7c0,   
      0x1914e60,   0x192d500,   0x1945ba0,   0x195e240,   0x19768e0,   
      0x198ef80,   0x19a7620,   0x19bfcc0,   0x19d8360,   0x19f0a00,   
      0x1a090a0,   0x1a21740,   0x1a39de0,   0x1a52480,   0x1a6ab20,   
      0x1a831c0,   0x1a9b860,   0x1ab3f00,   0x1acc5a0,   0x1ae4c40,   
      0x1afd2e0,   0x1b15980,   0x1b2e020,   0x1b466c0,   0x1b5ed60,   
      0x1b77400,   0x1b8faa0,   0x1ba8140,   0x1bc07e0,   0x1bd8e80,   
      0x1bf1520,   0x1c09bc0,   0x1c22260,   0x1c3a900,   0x1c52fa0,   
      0x1c6b640,   0x1c83ce0,   0x1c9c380,   0x1cb4a20,   0x1ccd0c0   
   );
   var $ret = false;
   
   
   function dkcypher($param = false)
   {
      return true;
   }

   function encrypt($string)
   {
      $this->data['char'] = array();
      $this->data['cypher'] = array();
      $this->data['length'] = strlen($string);
      
      if(($this->data['length'] % 2) == 1)
      {
         $string .= chr( 0x00 );
         $this->data['length'] += 1;
      }
      
      for($i = 0; $i < $this->data['length']; $i++)
         $this->data['char'][] = base_convert( ord( $string{$i} ), 10, 8);

      for($i = 0; $i < $this->data['length']; $i++)
      {
         $L = $this->data['char'][$i];
         $R = $this->data['char'][$this->data['length'] - $i - 1];

         for($j = 0; $j < 300; $j++)
         {
            $L ^= $this->K[$j];
            $R ^= $this->K[$j];
         }
         
         $this->data['cypher'][$i] = $L;
         $this->data['cypher'][$this->data['length'] - $i - 1] = $R;
      }

      $this->ret = false;
      for($i = 0; $i < $this->data['length']; $i++)
      {
         $this->ret .= ( chr( substr( $this->data['cypher'][$i], 0, 2) ) ^ '&' );
         $this->ret .= ( chr( substr( $this->data['cypher'][$i], 2, 2) ) ^ '%' );
         $this->ret .= ( chr( substr( $this->data['cypher'][$i], 4, 2) ) ^ '$' );
         $this->ret .= ( chr( substr( $this->data['cypher'][$i], 6, 2) ) ^ '?' );
      }
      
      return $this->ret;
   }

   function decrypt($string)
   {
      $this->data['char'] = array();
      $this->data['length'] = strlen($string);
      $this->data['dlength'] = 0;
      
      $this->data['decypher'] = array();
      $this->data['decypher']['char'] = array();
      $this->data['decypher']['string'] = false;
      
      for($i = 0; $i < $this->data['length']; $i += 4)
      {
         $this->data['char'][] = $string{$i}   ^ '&';
         $this->data['char'][] = $string{$i+1} ^ '%';
         $this->data['char'][] = $string{$i+2} ^ '$';
         $this->data['char'][] = $string{$i+3} ^ '?';
      }
      
      for($i = 0; $i < $this->data['length']; $i += 4)
      {
         $s1 = ord( $this->data['char'][$i]   );
         $s2 = ord( $this->data['char'][$i+1] );
         $s3 = ord( $this->data['char'][$i+2] );
         $s4 = ord( $this->data['char'][$i+3] );
         
         $s1 = ( $s1 < 10 ) ? ( '0' . $s1 ) : $s1;
         $s2 = ( $s2 < 10 ) ? ( '0' . $s2 ) : $s2;
         $s3 = ( $s3 < 10 ) ? ( '0' . $s3 ) : $s3;
         $s4 = ( $s4 < 10 ) ? ( '0' . $s4 ) : $s4;         
         
         $this->data['decypher']['char'][] = $s1 . $s2 . $s3 . $s4 ;
      }
      
      $this->data['dlength'] = count($this->data['decypher']['char']);
      $this->data['char'] = array();
      
      for($i = 0; $i < $this->data['dlength']; $i++)
      {
         $L = $this->data['decypher']['char'][$i];
         $R = $this->data['decypher']['char'][$this->data['dlength'] - $i - 1];
         
         for($j = 0; $j < 300; $j++)
         {
            $L ^= $this->K[$j];
            $R ^= $this->K[$j];
         }
         
         $this->data['char'][$i] = $L;
         $this->data['char'][$this->data['dlength'] - $i - 1] = $R;
      }
      
      $this->ret = false;
      for($i = 0; $i < $this->data['dlength']; $i++)
         $this->ret .= chr ( base_convert( $this->data['char'][$i], 8, 10) );
      
      return $this->ret;
   }
}

$dKe = new Cypher_dKe();

?>

Return to “Cryptography”