Jump to content
Fórum Script Brasil
  • 0

aes_encrypt Mysql e asp


kania

Question

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 to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

  • 0

como está o campo senha no banco?

SQL = "select * from cadastro_usuarios where login = 'login_usuario' and senha = '"& AES_ENCRYPT('brasil', sha1( 'bcbd766df8f87v787g87d87a87sa8a8w7v87')) &"' "

Set Rs = Conn.Execute(SQL)

Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...