Jump to content


Photo

Qual A Melhor Forma De Se Criptografar Senhas


  • Faça o login para participar
10 replies to this topic

#1 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 19/02/2007, 07:50

Num sistema de login com usuario e senha, qual a melhor forma para se criptografar a senha no banco de dados, para que se acessarem com o phpmyadmin por ex. nao conseguir ver a senha original?

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 19/02/2007, 07:59

Criptografia não sei, mas hash basta um MD5 gerado por um salt aleatório. Exemplo:

md5(md5('abc123') . md5('d6fzp3')); // onde abc123 é a senha e d6fzp3 é o salt aleatório
O IPB, por exemplo, é um dos sistemas que utilizam este tipo de artifício.

[]’s :DAté mais

#3 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 19/02/2007, 08:08

Certo, talvez nao seja criptografia, nao sabia como dizer :)

Tipo no exe. que me passou, é para gerar a senha(hash) certo? ai na hora do cadastro, eu pego a senha boto la no "abc123" e ele gera a nova e eu gravo no bd certo? e Depois para ver a senha "normal"?

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 19/02/2007, 08:14

Tipo no exe. que me passou, é para gerar a senha(hash) certo?

Certo.

ai na hora do cadastro, eu pego a senha boto la no "abc123" e ele gera a nova e eu gravo no bd certo?

Certo.

e Depois para ver a senha "normal"?

Então... por ser um hash, não há como retornar ao valor original. Para tu efetuar um login, por exemplo, tu verifica se o hash gerado pela senha informada bate com o hash cadastrado no BD. Se forem iguais, maravilha, o usuário digitou a senha correta. Se não forem, simples, senha incorreta. :P

[]’s :DAté mais

#5 Layout WebHost

Layout WebHost

    Normal

  • Usuários
  • 95 posts
  • Sexo:Não informado

Posted 19/02/2007, 08:41

E se o usuario esquecer a senha e tiver um recurso para enviar a senha dele por email?

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 19/02/2007, 09:13

E se o usuario esquecer a senha e tiver um recurso para enviar a senha dele por email?

Então... neste caso não se envia a mesma senha pelo e-mail, visto que não é possível. Cria-se uma outra (aleatória) e envia pro e-mail cadastrado. =)

[]’s :DAté mais

#7 dark sonic

dark sonic

    12 Horas

  • Usuários
  • 121 posts
  • Sexo:Não informado

Posted 19/02/2007, 13:37

poderia enviar a propria senha que tah gravada no db e assim que ele entrasse no sistema ele teria que escolher outra senha obrigatoriamente se naum por causa da verificação do hash toda hora que ele fosse tentar logar iria dar senha incorreta...

bom mas eu prefiro usar o base64, não é tão eficiente quanto um md5 pois com o base64 pode-se saber qual eh o valor "criptografado" mas dependendo do porte do seu sistema isso seria vamos dizer relativo a se você quer proteger bem ou simplesmente proteger !

#8 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 19/02/2007, 16:50

poderia enviar a propria senha que tah gravada no db e assim que ele entrasse no sistema ele teria que escolher outra senha obrigatoriamente se naum por causa da verificação do hash toda hora que ele fosse tentar logar iria dar senha incorreta...
.....


Mas como vai enviar a propria senha que ta gravada?
Sendo que ninguem sabe dela ... o sistema não sabe o dono do site não sabe e o dono da senha tbm não sabe! :D

#9 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 19/02/2007, 17:18

Se você dar a senha "criptografada" para o usuário, nunca vai dar certo, pois no arquivo que checa os dados, ele confere a senha "criptografada" pela senha no BD. Se você criptografar a senha já criptografada, vai dar senha incorreta sempre...

A solução é criar um número aleatório e mandar quando o usuário quiser lembrar a senha...

É o que eu faço no meu site.

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#10 Fábio Luciano

Fábio Luciano

    Ativo

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Santa Maria / DF
  • Interesses:Ah eu gosto de tudo :D

Posted 20/02/2007, 02:14

Criptografia não sei, mas hash basta um MD5 gerado por um salt aleatório. Exemplo:

md5(md5('abc123') . md5('d6fzp3')); // onde abc123 é a senha e d6fzp3 é o salt aleatório
O IPB, por exemplo, é um dos sistemas que utilizam este tipo de artifício.

[]’s :D


Dessa forma nem no brute force o cara vai conseguir \o\

#11 dark sonic

dark sonic

    12 Horas

  • Usuários
  • 121 posts
  • Sexo:Não informado

Posted 20/02/2007, 16:58

mas eh claro que o sistema vai saber de quem eh a senha ele vai preencher um campo contendo o email e o sistema vai checar de quem eh esse email e mandar a senha gravada no db por email e na hora dele logar ele iria pra uma pagina vamos dizer recupera.especial.php e nessa pagina naum usaria a verificação mas na hora de add a nova senha ele iria add a nova criptografada !

esse seria o geito que eu primeiramente tentaria mas sei lah isso vai de programador pra programador e suas necessidades !!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq