Como criptografar código para passar pela url?

1,365 views
Skip to first unread message

Maury

unread,
Nov 17, 2008, 10:48:39 AM11/17/08
to php-brasil
Beleza pessoal?

Alguem tem uma sugestão de como faço para criptografar um id, por
exemplo o id do cliente. para passar pela url, e depois
descriptografar?
OBS: a função crypt(); não da certo, pois não descriptografa.
a função base64_encode() também não dá, pois não da para inserir uma
chave, ou seja, se alguem descobrir que estou usando esta, conseguiria
facilmente burlar o sistema.

Valeu.

Maury

unread,
Nov 17, 2008, 8:01:00 AM11/17/08
to php-brasil
Beleza pessoal?

Alguem tem uma sugestão de como faço para criptografar um id, por
exemplo o id do cliente. para passar pela url, e depois
descriptografar?
OBS: a função crypt(); não da certo.

Valeu.

Adir Valmir Chaquine Kuhn

unread,
Nov 17, 2008, 12:24:22 PM11/17/08
to php-b...@googlegroups.com
tenta usar o XOR

<?php
class Codificador {
    static $chave = "minhasenhasecreta";
    static function cript($a, $b) {
        if ($a=='') return '';
        $retorno = "";
        $i = strlen($a) - 1;
        $j = strlen($b);
        do {
            $retorno .= ($a{$i} ^ $b{$i % $j});
        } while ($i--);
        return strrev($retorno);
    }
    static function Codifica($param) {
        $string = (string) $param;
        return base64_encode(Codificador::cript($string, Codificador::$chave));
    }
    static function Decodifica($string) {
        return Codificador::cript(base64_decode($string), Codificador::$chave);
    }
}

$a = Codificador::Codifica(2123);
echo "Codificado: " . $a;
echo "<br>";
$b = Codificador::Decodifica($a);
echo "Decodificado: " . $b;
?>



2008/11/17 Maury <maurym...@gmail.com>



--
Adir Kuhn

Marcelo Ferreira

unread,
Nov 17, 2008, 12:28:57 PM11/17/08
to php-b...@googlegroups.com
Não da pra passar isso via POST ou SESSION?

2008/11/17 Adir Valmir Chaquine Kuhn <adir...@gmail.com>

Erick Belluci Tedeschi

unread,
Nov 17, 2008, 12:57:51 PM11/17/08
to php-brasil
O ideal é utilizar a extensão mcrypt.
Pois fazer troca de bits ou simplesmente codificar a string em outras
bases é muito fácil de ser descoberto.
Cria uma função para criptografar e outra para decriptografar
utilizando uma chave estática.
Exemplo tirado do manual do PHP (http://br2.php.net/manual/en/
function.mcrypt-encrypt.php)

<?php
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,
MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
$text = "Meet me at 11 o'clock behind the monument.";
echo strlen($text) . "\n";

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text,
MCRYPT_MODE_ECB, $iv);
echo strlen($crypttext) . "\n";
?>

Acredito que esse seja o modo mais adequado para o seu problema.
Oba.: Mesmo passando os dados via POST, eles podem ser snifados.

Att,

On Nov 17, 2:28 pm, "Marcelo Ferreira" <mamiferre...@gmail.com> wrote:
> Não da pra passar isso via POST ou SESSION?
>
> 2008/11/17 Adir Valmir Chaquine Kuhn <adirk...@gmail.com>
> > 2008/11/17 Maury <maurymmarq...@gmail.com>

Klederson "Acid" Bueno Bezerra da Silva

unread,
Nov 17, 2008, 1:04:54 PM11/17/08
to php-b...@googlegroups.com
Qual dos meus kbça de chipas preferidos ja mexeu com NF-e ????
Algum webservice recomendado?

Valeu!!!

Maury

unread,
Nov 17, 2008, 1:51:50 PM11/17/08
to php-brasil
Beleza pessoal!
Agradeço a todos, mas o que eu procurava, encontrei aqui
http://imasters.uol.com.br/artigo/4802/web...rvices/#acoment

Usei a criptografia simetrica, usando uma chave para criptografar,
assim o cara pode ate descobrir qual criptografia estou usando, mas
prescisara da chave para descriptografar.
Coisa que não acontece usando o base64_encode();

Assim eu envio a url por e-mail e a pessoa não consegurá mudar o valor
do id, pois o mesmo se encontrara criptografado.

Valeu.

Erick Belluci Tedeschi

unread,
Nov 18, 2008, 6:52:26 AM11/18/08
to php-brasil
É isso ae!
como você viu nesse link a classe que o cara desenvolveu utiliza a
extensão mcrypt.

t+

On Nov 17, 3:51 pm, Maury <maurymmarq...@gmail.com> wrote:
> Beleza pessoal!
> Agradeço a todos, mas o que eu procurava, encontrei aquihttp://imasters.uol.com.br/artigo/4802/web...rvices/#acoment
Reply all
Reply to author
Forward
0 new messages