Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- define('PART', 1); // 1 or 2
- $pos = 0;
- $skip = 0;
- $list = range(0, 255);
- $size = count($list);
- $run = 0;
- // $input = '1,2,3';
- $input = '83,0,193,1,254,237,187,40,88,27,2,255,149,29,42,100';
- if(PART == 1)
- {
- foreach(explode(',', $input) as $length)
- {
- $length = intval($length);
- $indices = array();
- for($i = 0; $i < $length; $i += 1)
- {
- $indices[] = ($pos + $i) % $size;
- }
- $reversed = array();
- foreach($indices as $idx)
- {
- $reversed[] = $list[$idx];
- }
- $reversed = array_reverse($reversed);
- foreach($indices as $i => $idx)
- {
- $list[$idx] = $reversed[$i];
- }
- $pos = ($pos + $length + $skip) % $size;
- $skip += 1;
- }
- echo $list[0].' x '.$list[1].' = '.$list[0] * $list[1]."\r\n";
- }
- else
- {
- $actual_input = array();
- foreach(str_split($input) as $char)
- {
- $actual_input[] = ord($char);
- }
- $actual_input = array_merge($actual_input, array(17, 31, 73, 47, 23));
- while($run < 64)
- {
- foreach($actual_input as $length)
- {
- $length = intval($length);
- $indices = array();
- for($i = 0; $i < $length; $i += 1)
- {
- $indices[] = ($pos + $i) % $size;
- }
- $reversed = array();
- foreach($indices as $idx)
- {
- $reversed[] = $list[$idx];
- }
- $reversed = array_reverse($reversed);
- foreach($indices as $i => $idx)
- {
- $list[$idx] = $reversed[$i];
- }
- $pos = ($pos + $length + $skip) % $size;
- $skip += 1;
- }
- $run += 1;
- }
- $dense = array();
- foreach(array_chunk($list, 16) as $part)
- {
- $result = 0;
- foreach($part as $number)
- {
- $result ^= $number;
- }
- $dense[] = $result;
- }
- $output = '';
- foreach($dense as $d)
- {
- $output .= dechex($d);
- }
- echo 'Result: '.$output."\r\n";
- }
- ?>
Add Comment
Please, Sign In to add comment