Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cesão

md5

Recommended Posts

Olá amigos,

 

estou com uma dúvida meio estranha, pq na minha cabeça parece fácil fazer, mas não estou conseguindo montar a lógica depois de tantas horas de trabalho...

 

tenho um DB com uma tabela de usuários.. nela possuo um campo de ID INT... quando alguem vai se cadastrar, ele registra o usuario no banco normalmente, com um ID inteiro.. logo depois de se cadastrar, o sistema envia um e-mail pra ele dizendo p ele confirmar o cadastro, mas dai no e-mail, eu passo o ID criptografado por MD5... ou seja, ao inves de ele receber um link de confirmação assim:

www.site.com.br/default.asp?id=1

ele recebe

www.site.com.br/default.asp?id=c4ca4238a0b923820dcc509a6f75849b

 

até ai tudo bem.. consegui fazer certinho...

mas dai queria saber como vou fazer um update (para liberar o cadastro do usuario) e comparar essa variavel criptografada com o ID do banco??

 

vai ser:

UPDATE TABELA SET STATUS=1 WHERE ID = (não sei o que colocar aqui)

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só você criptografar o ID antes de comparar no código sql... algo tipo:

 

IDCriptografado = md5(ID)

"UPDATE TABELA SET STATUS=1 WHERE ID ="&IDCriptografado

 

Espero ter ajudado. []'zz

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só você criptografar o ID antes de comparar no código sql... algo tipo:

 

IDCriptografado = md5(ID)

"UPDATE TABELA SET STATUS=1 WHERE ID ="&IDCriptografado

 

Espero ter ajudado. []'zz

cara, nao eh esse o meu problema...

eu disse que no banco meu ID NAO EH CRIPTOGRAFADO, mas eh criptografado para ser passado por e-mail...

dai eu quero pegar essa variavel criptografada e comparar com meu ID do banco que NAO eh criptografado...

 

alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você n grava criptografado... md5 não permite decriptografia. Vai ficar dificil trabalhar assim ;P

 

ou então você recupera do banco, criptografa, compara, e só depois faz o update...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas nao quero criptografar o IP pra nao pesar no banco.. senao ateh usaria o sistema de criptografia do proprio sql server...

e a outra maneira eu ja tentei.. mas mesmo assim caio no mesmo problema, veja pq...

 

eu tenho la minha variavel criptografada chamada var_id

 

dai vamos dizer que fiz um select de todos os usuarios com um recordset chamado RS...

 

dai faço o while do RS para mostrar todos os usuarios e comparar seu ID, assim...

 

do while not RS.EOF
If md5(RS("ID")) = var_id Then
SQL = "UPDATE TABELA SET STATUS=1 WHERE ID_USUARIO=?"
RS.movenext : loop

e ai, o que eu coloco ali no lugar do "?"

 

Adilson, eu não estou querendo reverte-lo.. sei que eh irreversivel... soh quero saber se tem como eu criptografar o que vem do banco p comparar com minha variavel ja criptografada e ai fazer o update no banco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra criptografar o que vem do bancop você precisaria de uma chave que estivesse associada ao registro que você quer buscar... esse registro, porém não está criptografado no banco, ou seja... é impossivel você recuperar esse valor sem criptografar no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

até daria pra criptografar o que tem no banco, mas você vai ter que percorrer todas as linhas da tabela criptografando e verificando se o valor atual do recordset(criptografado) é igual a variavel criptografada, assim você saberia qual id do recordset é igual, mas isso é algo relacionado a POG pois seu código vai ficar leeeeento fazendo essa operação. Caso o sistema esteja em desenvolvimento utilize uma chave de criptografia reversivel. MD5 é utilizado em senhas e chaves únicas e não nesse caso que você utilizou

Compartilhar este post


Link para o post
Compartilhar em outros sites

até daria pra criptografar o que tem no banco, mas você vai ter que percorrer todas as linhas da tabela criptografando e verificando se o valor atual do recordset(criptografado) é igual a variavel criptografada, assim você saberia qual id do recordset é igual, mas isso é algo relacionado a POG pois seu código vai ficar leeeeento fazendo essa operação. Caso o sistema esteja em desenvolvimento utilize uma chave de criptografia reversivel. MD5 é utilizado em senhas e chaves únicas e não nesse caso que você utilizou

Boa cara, era dessa resposta que eu precisava... no jeito que eu fiz acho que ateh daria certo, mas nao consegui completar... daí comecei a procurar algum tipo de chave reversivel, mas nao achei nenhuma boa... a unica que achei é uma que apenas transforma seu caractere em outro...

 

você conhece alguma chave reversivel BOA? pq tipo, o MD5 é uma chave boa e sólida, pois ele transforma qq quantidade de caracteres em 32 caracteres aleatorios, diferentes e talz, e assim você consegue saber quantos caracteres vao ser armazenados no banco... você conhece alguma chave que seja assim, mas reversivel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

procura por criptografia 128 ou 64 bits e tem outra que gosto de usar que é RSA(se não me engano tirei do portal imasters). Essas chaves são de criptografia e descriptografia

Compartilhar este post


Link para o post
Compartilhar em outros sites

procura por criptografia 128 ou 64 bits e tem outra que gosto de usar que é RSA(se não me engano tirei do portal imasters). Essas chaves são de criptografia e descriptografia

Opa, vou procurar sim!

Valew Jonathan!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.