chave=2; * $crypt->mensagem="YGPFGTBQBDQO"; * echo $crypt->decodificar(); a mensagem voltará para wender o bom. * * Por que utilizar isso? * Simples. Suponhamos que seu visitante cadastre-se no seu site e você tenha uma senha encriptada e o mesmo a esqueceu. * entao vc disponibilizou a ele uma ferramenta de recuperação de senha, a qual a enviará ao e-mail do visitante. Você enviaria a senha * encriptada? Não teria muita utilidade não é mesmo? Se você utilizar uma criptografia de via única, terá que gerar uma nova senha e solicitar * ao usuário que a troque. * Com a criptografia reversa você pode decodificar a senha e envia-la como foi originalmente escrita por ele. * Caso o alfabeto nao o satisfaça, basta acrescentar caracteres de sua preferencia nos arrays alfabeto e falfavedo_inverso, mas lembre-se * de obedecer a ordem estabelecendo a co-relação entre os dois alfabetos, o original e o inverso. * */ class Encriptor{ var $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); var $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"=>" "); var $chave; var $mensagem; function decodificar(){ $n_mensagem=""; $ordem = count($this->alfabeto); $chave_inversa = ($ordem - $this->chave); for($i=strlen($this->mensagem); $i >= 0; $i--){ $x = -$i; $letras = substr(strtoupper($this->mensagem),$x,1); $letra[]=array($letras); } for($i=0; $i < strlen($this->mensagem);$i++){ $l = $letra[$i][0]; $lc = ($this->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($this->mensagem); $i++){ @$decodificar = $numeros[$i][0]; $n_mensagem .= @$this->alfabeto_inverso[$decodificar]; } return $n_mensagem; } // método para codificar function codificar(){ $n_mensagem=""; $ordem = count($this->alfabeto); $chave_inversa = ($this->chave); for($i=strlen($this->mensagem); $i >= 0; $i--){ $x = -$i; $letras = substr(strtoupper($this->mensagem),$x,1); $letra[]=array($letras); } for($i=0; $i < strlen($this->mensagem);$i++){ $l = $letra[$i][0]; $lc = ($this->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($this->mensagem); $i++){ @$codificar = $numeros[$i][0]; $n_mensagem .= @$this->alfabeto_inverso[$codificar]; } return $n_mensagem; } } // exemplo: $crypt = new Encriptor; $crypt->chave=2; $crypt->mensagem="wender o bom"; echo $crypt->codificar(); // nesse caso resultará em YGPFGTBQBDQO ?>