Ir para conteúdo
Fórum Script Brasil
  • 0

aes_encrypt Mysql e asp


kania

Pergunta

Pessoal boa noite,

Estou fazendo um encriptação de senha no cadastro no site, ai quero tirar uma dúvida com vocês.

Meus códigos estão assim:

SELECT

SELECT AES_DECRYPT(senha, sha1( 'minhaChave')) AS senha, id_usuarios FROM cadastro_usuarios WHERE id_usuarios = id_usuario
UPDATE
UPDATE cadastro_usuarios SET senha = AES_ENCRYPT('" & nova_senha & "', sha1( 'minhaChave')) WHERE id_usuarios = id_usuario
Bom minha dúvida é a seguinte, se eu pedir para ele imprimir na tela a senha descriptografada ele esta trazendo dados binários ao envés da senha na forma descriptografada, e claro se eu fizer algum tipo de comparação com esta senha também aparentemente não faz nada ou ainda tentar reenviar ele por email chega somente dados binários, aparentemente o AES_DECRYPT não esta funcionando para imprimir, porem se quando a utilizo como para fazer login por exemplo o login funciona normalmente, o que indica que neste caso o AES_DECRYPT esta funcionando uma vez que o usuário digita sempre a senha na forma normal e não binária, vejam o que aparece quando imprimo:
Senha: 嶡逸썲噥ﴑ
A já tentei assim também
SELECT id_usuarios, AES_DECRYPT(AES_ENCRYPT(senha, 'minhaChave'),'minhaChave') AS senha FROM cadastro_usuarios WHERE id_usuarios = id_usuario
o que eu já cponsegui descobrir é que direto por um gerenciador MySql ao utilizar o SELECT desta forma
SELECT id_usuarios, AES_DECRYPT(senha, sha1( 'minhaChave')) AS senha FROM cadastro_usuarios WHERE id_usuarios = id_usuario

Que é a mesma mostrada acima, funciona normalmente, ele descriptografa certinho, o problema esta somente em imprimir na tela mesmo via Response.Write (Rs("senha")).

Você sabem se é possível imprimir uma senha criptografada?

Se não for, como vou fazer para reenviar por email esta senha?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

esse select deveri definir senha com o que ? vindo de onde ?

não seria:

sql="SELECT id_usuarios, senha FROM cadastro_usuarios WHERE senha='"&AES_DECRYPT(senha, sha1( 'minhaChave')) AS &"' and id_usuarios ="& id_usuario

em algumas coisas que fiz eu sempre fiz a comparação da senha encriptada, no banco tudo encriptado em modos sem reversão, ai encrypita o que foi digitado e compara.... isso junto a um login ou e-mail.

sobre o AES

http://pt.wikipedia.org/wiki/Advanced_Encryption_Standard

Link para o comentário
Compartilhar em outros sites

  • 0

bareta, funciona assim, eu pego a senha e o login da seguinte forma:

senha = EvitarSqlInjection(Request.Form("senha"))
Note que eu trato a variável senha para evitar o SqlInjetcion, bom imagine que o usuário digitou brasil como senha, ele vai recuperar brasil ai eu uso esta varial senha (brasil) no select da seguinte forma
SQL = "select * from cadastro_usuarios where login ='" & id & "' and senha = AES_DECRYPT('" & senha & "', sha1( '" & chave_seguranca & "'))"
Set Rs = Conn.Execute(SQL)
Onde login = EvitarSqlInjection(Request.Form("login")) Onde senha = EvitarSqlInjection(Request.Form("senha")) Onde chave_seguranca = 'uma chave que eu criei para encriptar' ou seja no geral o select ficaria assim
SQL = "select * from cadastro_usuarios where login = 'login_usuario' and senha = AES_ENCRYPT('brasil', sha1( 'bcbd766df8f87v787g87d87a87sa8a8w7v87'))"
Set Rs = Conn.Execute(SQL)

Depois disto eu só verifico se os dados foram encontrados no banco de dados caso sim ele redireciona para a pagina restrita, caso não informa o erro ao usuário.

No meu caso o que acontece é que quando a senha esta encriptada ele sempre diz que os dados estão errados

Link para o comentário
Compartilhar em outros sites

  • 0
O campo senha esta como varchar(100)

Karina,

Não conheço este script de encriptação, mas já utilizei no MOD5 que funciona assim:

password = md5(password)

neste momento é feito a encriptação doa dados e gravado no banco, até unde eu sei, não dá para desfazer o proceso e assim fica impossível a recuperação da senha em caso de esquecimento (por exemplo).

O processo seria assim:

1º - você recupera a variavel do formulário;

2º - passa a variavel pelo script de emcriptação;

3º - consulta o banco, pela variável encriptada e pelo ID do usuário;

4º - se retornar dados, significa que o usuério conseguiu se logar;

Nestes casos, não é possível recuperar a senha, caso o usuário tenha esquecido, você pode montar um porcesso onde é gerado e enviado uma senha vencida para o email do usuário, assim ele pode cadastrar uma nova senha.

Tenha um bom dia.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...