<?
$alfabeto 
= array("A"=>0,"B"=>1,"C"=>2,"D"=>3,"E"=>4,"F"=>5,"G"=>6,"H"=>7,"I"=>8,
"J"=>9,"K"=>10,"L"=>11,"M"=>12,"N"=>13,"O"=>14,"P"=>15,"Q"=>16,"R"=>17,"S"=>18,"T"=>19,
"U"=>20,"V"=>21,"W"=>22,"X"=>23,"Y"=>24,"Z"=>25," "=>26);

$alfabeto_inverso = array("0"=>"A","1"=>"B","2"=>"C","3"=>"D","4"=>"E","5"=>"F","6"=>"G","7"=>"H","8"=>"I",
"9"=>"J","10"=>"K","11"=>"L","12"=>"M","13"=>"N","14"=>"O","15"=>"P","16"=>"Q","17"=>"R","18"=>"S","19"=>"T",
"20"=>"U","21"=>"V","22"=>"W","23"=>"X","24"=>"Y","25"=>"Z","26"=>" ");

$chave=2;
$ordem count($alfabeto);
$chave_inversa = ($ordem $chave);
$mensagem_codificada "YGPFGTBQBDQO";

for(
$i=strlen($mensagem_codificada); $i >= 0$i--){
$x = -$i;
$letras substr(strtoupper($mensagem_codificada),$x,1);
$letra[]=array($letras);
}


for(
$i=0$i strlen($mensagem_codificada);$i++){
$l $letra[$i][0];
$lc = ($alfabeto[$l]+$chave_inversa); // converte para o codigo do alfabeto e soma à chave inversa
    
if($lc $ordem){ // encontra o resto e armazena
    
$resto $lc%$ordem;
    }elseif(
$ordem==$lc){
    
$resto=0;
    }
    else
    {
    
$resto $lc;
    }
    
$numeros[]=array($resto);
}

for(
$i=0$i <= strlen($mensagem_codificada); $i++){
$descodificar $numeros[$i][0];
echo 
$alfabeto_inverso[$descodificar];
}


?>