Como criptografar código para passar pela url?

1,254 views
Skip to first unread message

Maury

unread,
Nov 17, 2008, 8:00:13 AM11/17/08
to CakePHP Tuga
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.

Marcelo Andrade

unread,
Nov 17, 2008, 8:09:11 AM11/17/08
to cakep...@googlegroups.com
2008/11/17 Maury <maurym...@gmail.com>:

>
> 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.

Boa pergunta! Também não faço idéia. Já usei o crypt só para
cifrar senhas em banco de dados. Talvez se passares o resultado
dele por um urlencode antes do browser... não sei.

Atenciosamente.

--
MARCELO DE F. ANDRADE (aka "eleKtron")
Belem, PA, Amazonia, Brazil
Linux User #221105

[gus@pará ~]# links http://pa.slackwarebrasil.org/

Gustavo Carreno

unread,
Nov 17, 2008, 8:15:12 AM11/17/08
to cakep...@googlegroups.com
2008/11/17 Maury <maurym...@gmail.com>:

O mais usual é usar a base64_encode() e a base64_decode().

[]'s
Gus

Josenivaldo Benito Junior

unread,
Nov 17, 2008, 8:22:32 AM11/17/08
to cakep...@googlegroups.com
Olá Maury,

Se você verificar o manual do PHP vai encontrar:

cryptOne-way string encryption (hashing)


Ou seja, é uma função Hash e vamos dizer, bem a grosso modo, que hash é uma função "só de ida" (One-way).

Você precisa de um algoritmo de "mão dupla". Algo baseado em chave compartilhada (já que você vai deter os dois lados do algoritmo).

Abraço,

Josenivaldo Benito Junior. PU2LBD
Localizador: GG67MH23DE
Organizador do Concurso Brasileiro de 144 MHZ - CB144
(em conj. com PY2BRZ e  PY2HCD)
http://www.gbvudx.qsl.br Wikipedia Affiliate Button




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

Josenivaldo Benito Junior

unread,
Nov 17, 2008, 8:28:09 AM11/17/08
to cakep...@googlegroups.com
Aliás, porque você quer criptografar o ID na URL? Para ninguém saber qual ID no banco? Se for isso concordo com Gustavo, um base64 ou outro bem simples resolve (até um ROT13). Tá certo que qualquer um mais espertinho vai sacar que pode ser um Base64 e poderá facilmente "desconverter". Mas também não sei se vale o esforço usar algo mais parrudo para isso.

(só curiosidade)


Josenivaldo Benito Junior. PU2LBD
Localizador: GG67MH23DE
Organizador do Concurso Brasileiro de 144 MHZ - CB144
(em conj. com PY2BRZ e  PY2HCD)
http://www.gbvudx.qsl.br Wikipedia Affiliate Button




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

Bill

unread,
Nov 17, 2008, 8:28:33 AM11/17/08
to cakep...@googlegroups.com





On Mon 17/11/08 10:09 AM , "Marcelo Andrade" <mfan...@gmail.com> wrote:

> 2008/11/17 Maury :
> >
> > Alguem tem uma sugest&atilde;o de como fa&ccedil;o para
> criptografar um id, por
> > exemplo o id do cliente. para passar pela url, e depois
> > descriptografar?
> > OBS: a fun&ccedil;&atilde;o crypt(); n&atilde;o da certo.
> Boa pergunta! Tamb&eacute;m n&atilde;o fa&ccedil;o id&eacute;ia.
> J&aacute; usei o crypt s&oacute; para
> cifrar senhas em banco de dados. Talvez se passares o resultado
> dele por um urlencode antes do browser... n&atilde;o sei.
> Atenciosamente.
> --
> MARCELO DE F. ANDRADE (aka "eleKtron")
> Belem, PA, Amazonia, Brazil
> Linux User #221105
> [&aacute; ~]# links http://pa.slackwarebrasil.org/
> >
>
---- Msg sent via @Mail - http://atmail.com/

Maury

unread,
Nov 17, 2008, 8:52:30 AM11/17/08
to CakePHP Tuga
Pois é, eu presciso de algo que criptografe usando alguma chave que eu
possa definir.
O base64_encode() seria muito fácil de alguem sacar.

Falow.

Michael Mafort

unread,
Nov 17, 2008, 9:21:39 AM11/17/08
to cakep...@googlegroups.com
Qual o problema de alguém saber o ID? Você não acha que protegendo o servidor contra ataques isto não resolve? bloqueando o acesso a áreas restritas definindo talvez grupos de acessos?

Bom acho que bloquear o ID não é um esforço válido, até porque o ID é só uma referencia, assim como qualquer outro dado pode ser.

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



--
Michael Mafort
CRIASOL - Desenvolvimento Web
Diretor de Tecnologia
+55 31 9846-5904
michae...@criasol.com.br

Juan Basso

unread,
Nov 17, 2008, 10:30:59 AM11/17/08
to CakePHP Tuga
Proteger uma ID ou campo de senha pela URL não vai adiantar nada. Quem
tá monitorando a URL vai pegar a mesma URL e entrar, ou seja, não sei
a senha/id, mas entro do mesmo jeito.

Se você vai fazer alguma cifragem, faça usando uma referência (algum
contador ou mesmo a data do servidor...).

Se você quer uma função de cifragem de duas mãos (ou duas vias), veja
sobre Mcrypt no manual do PHP.


Juan Basso

On 17 nov, 12:21, "Michael Mafort" <michaelmaf...@gmail.com> wrote:
> Qual o problema de alguém saber o ID? Você não acha que protegendo o
> servidor contra ataques isto não resolve? bloqueando o acesso a áreas
> restritas definindo talvez grupos de acessos?
>
> Bom acho que bloquear o ID não é um esforço válido, até porque o ID é só uma
> referencia, assim como qualquer outro dado pode ser.
>
> 2008/11/17 Maury <maurymmarq...@gmail.com>
>
>
>
> > Pois é, eu presciso de algo que criptografe usando alguma chave que eu
> > possa definir.
> > O base64_encode() seria muito fácil de alguem sacar.
>
> > Falow.
>
> --
> Michael Mafort
> CRIASOL - Desenvolvimento Web
> Diretor de Tecnologia
> +55 31 9846-5904
> michaelmaf...@criasol.com.br

Maury

unread,
Nov 17, 2008, 10:38:06 AM11/17/08
to CakePHP Tuga
Não é isso pessoal. É que vou passar a url por email, e essa url só
pode ser acessada por quem tem algo criptografado que venha fazer
sentido depois de descriptografado.
Não adianta passar algo simples, senão qualquer um pode inserir id e
acessar as opções que não são permitidas a essas pessoas.

Bill

unread,
Nov 17, 2008, 10:49:10 AM11/17/08
to cakep...@googlegroups.com
É só vc usar sistema de login e senha referente ao id da URL q está passando, se a pessoa efetuar corretamente o login, e seu ID for igual o ID da URL, ela passa a seguir.

Abs




On Mon 17/11/08 12:38 PM , Maury <maurym...@gmail.com> wrote:

> N&atilde;o &eacute; isso pessoal. &Eacute; que vou passar a url por
> email, e essa url s&oacute;
> pode ser acessada por quem tem algo criptografado que venha fazer
> sentido depois de descriptografado.
> N&atilde;o adianta passar algo simples, sen&atilde;o qualquer um
> pode inserir id e
> acessar as op&ccedil;&otilde;es que n&atilde;o s&atilde;o permitidas
> a essas pessoas.

Lucas Ferreira

unread,
Nov 17, 2008, 10:56:44 AM11/17/08
to cakep...@googlegroups.com
E MD5 não rola usar?

2008/11/17 Bill <ad...@cakephp.com.br>

Bill

unread,
Nov 17, 2008, 10:58:19 AM11/17/08
to cakep...@googlegroups.com
md5 não tem como descriptografar, para comparar, o ID da tabela devera estar em MD5 tb.

Abs




On Mon 17/11/08 12:56 PM , "Lucas Ferreira" <panc...@gmail.com> wrote:

> E MD5 não rola usar?
>
> 2008/11/17 Bill
> É só vc usar sistema de login e senha referente ao id da URL q
> está passando, se a pessoa efetuar corretamente o login, e seu ID for
> igual o ID da URL, ela passa a seguir.
> Abs
> On Mon 17/11/08 12:38 PM , Maury wrote:
> > N&atilde;o &eacute; isso pessoal. &Eacute; que vou passar a url
> por
> > email, e essa url s&oacute;
> > pode ser acessada por quem tem algo criptografado que venha fazer
> > sentido depois de descriptografado.
> > N&atilde;o adianta passar algo simples, sen&atilde;o qualquer um
> > pode inserir id e
> > acessar as op&ccedil;&otilde;es que n&atilde;o s&atilde;o
> permitidas
> > a essas pessoas.
> > >
> >
> ---- Msg sent via @Mail - http://atmail.com/ [3]
> >
>
> Links:
> ------
> [3] http://atmail.com/

Michael Mafort

unread,
Nov 17, 2008, 10:59:11 AM11/17/08
to cakep...@googlegroups.com
Fiquei curioso para saber o motivo de criptografar o ID, até agora não entendi.

2008/11/17 Bill <ad...@cakephp.com.br>

--
Michael Mafort
CRIASOL - Desenvolvimento Web
Diretor de Tecnologia
+55 31 9846-5904
michae...@criasol.com.br

Lucas Ferreira

unread,
Nov 17, 2008, 11:03:26 AM11/17/08
to cakep...@googlegroups.com
Só comparar o field em MD5 também não?

MD5(id) = '$varemmd5vindadaURL'

2008/11/17 Bill <ad...@cakephp.com.br>

Bill

unread,
Nov 17, 2008, 11:07:29 AM11/17/08
to cakep...@googlegroups.com
Nem eu...se fosse algum código de validação de cadastro, algua sessão, algo mais importante, mas passar um ID criptografado é algo q não vejo encessidade alguma...mas...




On Mon 17/11/08 12:59 PM , "Michael Mafort" <michae...@gmail.com> wrote:

> Fiquei curioso para saber o motivo de criptografar o ID, até agora
> não entendi.
>
> 2008/11/17 Bill
> md5 não tem como descriptografar, para comparar, o ID da tabela
> devera estar em MD5 tb.
> Abs
> On Mon 17/11/08 12:56 PM , "Lucas Ferreira" wrote:
> > E MD5 não rola usar?
> >
> > 2008/11/17 Bill
> > É só vc usar sistema de login e senha referente ao id da URL q
> > está passando, se a pessoa efetuar corretamente o login, e seu ID
> for
> > igual o ID da URL, ela passa a seguir.
> > Abs
> > On Mon 17/11/08 12:38 PM , Maury wrote:
> > > N&atilde;o &eacute; isso pessoal. &Eacute; que vou passar a url
> > por
> > > email, e essa url s&oacute;
> > > pode ser acessada por quem tem algo criptografado que venha
> fazer
> > > sentido depois de descriptografado.
> > > N&atilde;o adianta passar algo simples, sen&atilde;o qualquer um
> > > pode inserir id e
> > > acessar as op&ccedil;&otilde;es que n&atilde;o s&atilde;o
> > permitidas
> > > a essas pessoas.
> > > >
> > >
> > ---- Msg sent via @Mail - http://atmail.com/ [3] [3]
> > >
> >
> > Links:
> > ------
> > [3] http://atmail.com/ [4]
> >
> >
> ---- Msg sent via @Mail - http://atmail.com/ [5]
> --
> Michael Mafort
> CRIASOL - Desenvolvimento Web
> Diretor de Tecnologia
> +55 31 9846-5904
> >
>
> Links:
> ------
> [3] http://atmail.com/
> [4] http://atmail.com/
> [5] http://atmail.com/

Bill

unread,
Nov 17, 2008, 11:09:36 AM11/17/08
to cakep...@googlegroups.com
pode usar assim tb, mas qual necessidade?

Em que isso melhora a segurança? Não vejo utilidade nenhuma nisso, mas...




On Mon 17/11/08 1:03 PM , "Lucas Ferreira" <panc...@gmail.com> wrote:

> Só comparar o field em MD5 também não?
>
> MD5(id) = &#39;$varemmd5vindadaURL&#39;

Lucas Ferreira

unread,
Nov 17, 2008, 11:16:39 AM11/17/08
to cakep...@googlegroups.com
Sim não vejo utilidade nenhuma também.

Qualquer um pode ficar chutando IDs criptografados a vontade.

Por que não usar hash UUID ao invés de um ID unico? Usa um hash unico, não tem como cidadão no mundo adivinhar =P

Aqui explica: http://book.cakephp.org/view/68/Creating-Database-Tables#Using-UUIDs-as-Primary-Keys-70


Abs

2008/11/17 Bill <ad...@cakephp.com.br>

Michael Mafort

unread,
Nov 17, 2008, 12:07:41 PM11/17/08
to cakep...@googlegroups.com
tanta gente querendo reduzir os tamanhos das urls ou deixa-las mais amigáveis e outros querendo aumentar.

2008/11/17 Lucas Ferreira <panc...@gmail.com>

--
Michael Mafort
CRIASOL - Desenvolvimento Web
Diretor de Tecnologia
+55 31 9846-5904
michae...@criasol.com.br

Marcelo Andrade

unread,
Nov 17, 2008, 12:16:48 PM11/17/08
to cakep...@googlegroups.com
2008/11/17 Maury <maurym...@gmail.com>:

Entendi melhor. Mas Maury, tens que ver que tem três pontos de
segurança: o que se é, o que se tem ou o que se sabe. Fazer
segurança só pela URL não faz muito sentido. Já que a pessoa
vai receber a url por e-mail, porque não passar também uma
senha de acesso?

Atenciosamente.

--
MARCELO DE F. ANDRADE (aka "eleKtron")
Belem, PA, Amazonia, Brazil
Linux User #221105

[gus@pará ~]# links http://pa.slackwarebrasil.org/

Maury

unread,
Nov 17, 2008, 1:48:02 PM11/17/08
to CakePHP Tuga
Vcs sabem como é cliente, querem dar um clique só e tudo tem que
funcionar.
Mas seria como imbutir a senha na url, ou seja, o cliente vai receber
o email com a url e concatenado a ela o id criptografado, assim eu sei
que quem clicou no link foi o cliente mesmo. Então a url vai chegar
para mim e eu vou descriptografar usando uma chave que só eu tenho,
quase que uma assinatura digital. Ai então o cliente pode fazer um
tipo de alteração sem prescisar se logar ao sistema.

Agradeço a todos pela atenção. Mas encontrei uma classe php que faz
isso, e é só trocar a chave que a criptografia muda, e descriptografa
tambem.

Michael Mafort

unread,
Nov 17, 2008, 2:20:05 PM11/17/08
to cakep...@googlegroups.com
Nesse caso poderia usar o proprio id e um token, não precisava ser voltado para o texto original, pois é só uma autenticação por hash.

Sucesso!

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

--
Michael Mafort
CRIASOL - Desenvolvimento Web
Diretor de Tecnologia
+55 31 9846-5904
michae...@criasol.com.br

Maury

unread,
Nov 18, 2008, 7:04:15 AM11/18/08
to CakePHP Tuga
Reply all
Reply to author
Forward
0 new messages