$inputArray = array();
for ($i=0; $i<100; ++$i){
$inputArray[] = $i;
}
$controlArray = $inputArray;
$realRey_strlen = sizeof($inputArray) ;
$key = 'QWERTYU8g8b6%Uvgy12v8v712^%X T t57123c';
$realRey = substr( str_repeat($key, round( $realRey_strlen / strlen($key) ) +1 ), 0, $realRey_strlen );
for ($i=0 ; $i<$realRey_strlen; ++$i ){
// перестановка
$dlinaSdviga = $realRey[ $i];
if(!is_numeric($dlinaSdviga)){
$dlinaSdviga = ord($dlinaSdviga)-32;//72
}
// определяем элемент, с которым надо поменять
$flipId = $i+$dlinaSdviga;
while($flipId >= $realRey_strlen){
$flipId -= $realRey_strlen;
}
if(!isset($inputArray[$flipId ])){
var_dump("EBAAAA", $dlinaSdviga, $i, $flipId);
exit;
}
list($inputArray[$flipId ], $inputArray[$i ]) = array($inputArray[$i], $inputArray[$flipId]);
}
print_r($inputArray);
for ($i=$realRey_strlen-1 ; $i>=0; --$i ){
// перестановка
$dlinaSdviga = $realRey[ $i];
if(!is_numeric($dlinaSdviga)){
$dlinaSdviga = ord($dlinaSdviga)-32;//72
}
// определяем элемент, с которым надо поменять
$flipId = $i+$dlinaSdviga;
while($flipId >= $realRey_strlen){
$flipId -= $realRey_strlen;
}
if(!isset($inputArray[$flipId ])){
var_dump($dlinaSdviga, $i, $flipId);
exit;
}
list($inputArray[$flipId ], $inputArray[$i ]) = array($inputArray[$i], $inputArray[$flipId]);
}
print_r($inputArray);
if($controlArray === $inputArray){
echo "Yes! Normal crypted!";
}else{
echo "Error!";
}