-----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 A função ENCRYPT() do mysql é dependente de plataforma (ou pelo menos, costumava ser...). Significa que ENCRYPT num linux não necessariamente retorna a mesma coisa que num BSD.
ENCRYPT(), MD5() e SHA1() são exemplos de funções HASH (ou one-way). Três propriedades são especialmente interessantes (entre outras): a) para uma mesma entrada A, sempre haverá a mesma saída (são determinísticas, com a mesma entrada, sempre a mesma saída); b) se houver uma pequena variação na entrada (ex: 'aaadd' ou 'aAadd'), a saída tende a ser completamende diferente; c) a função direta é barata (de 'ida'), ou seja, do plaintext para o encriptado é muito 'barato', rápido. Mas do encriptado para o plantext, impraticavelmente cara (a função 'de volta'). A partir de da informação encriptada, é praticamente impossível reaver a informação original. Por esses motivos, são particularmente interessantes para armazenar senhas e informações que apenas uma única pessoa deve saber - o usuário. Agora, quanto a tua aplicação, recomendo usar PASSWORD() nativa do MySQL, MD5, SHA1 ou outra qualquer (eu normalmente uso MD5 ou SHA1, pois não depende de mandar a string da senha pela conexão no banco, normalmente sem SSL). Como assim? Duas alternativas para autenticar o usuário: a) SELECT COUNT(1) FROM users WHERE username='someone' AND PASSWORD=[ENCRYPT|MD5|SHA1|PASSWORD]('secret'); b) SELECT username, password FROM users WHERE username='someone'; em (a), a senha e o user trafegam em plaintext pela rede e podem eventualmente aparecer em logs de acesso ao banco... em (b), apenas o username trafega em plaintext, a senha faz parte do retorno do pacote, encriptada. Nesse caso, deves calcular a senha encriptada na aplicação e comparar com a resposta do banco (mas deverás encriptar no banco com alguma função HASH também disponível no PHP ou outra linguagem que fizeres a interface) Augusto Bott DBA - Administrador de Banco de Dados Departamento de Redes e Tecnologia E-mail: [EMAIL PROTECTED] Telefone: +55 11 3177-0700 ext: 343 Celular: +55 11 7840-3154 Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ: 710029 - ---------------------------------------------- Catho Online - Seu sucesso é o nosso negócio http://www.catho.com.br Fabrício Fadel Kammer wrote: > Entao Robson, o problema é comparar :-) > > Não sei como descriptografar a senha... > > -----Mensagem original----- > De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em > nome de Robson Uchoa > Enviada em: quinta-feira, 16 de fevereiro de 2006 14:18 > Para: Lista de discussao sobre FreeBSD > Assunto: Re: [FUG-BR] Off Topic: Postfix + mysql + troca de senha > > > Por que você não tenta indexar pelo nome ou número do usuário (ou outro > campo que seja único) ao invés da senha? > > update senha =encrypt(senhanova) from email where username = > nomedeusuario; > > É lógico que você deve verificar a senha antiga primeiro > > select senha from email where username = nomedeusuario; > > e comparar. > > > Fabrício Fadel Kammer escreveu: > >>Salve galera! >> >>Sei q eh bem off essa questao, mas se alguem já conseguiu fazer isso e > > >>puder me ajudar... >> >>Tenho um servidor postfix e as senhas sao armazenadas no banco de >>dados usando a funcao encrypt() do mysql... >> >>Alguém já fez uma interface em PHP para alteracao de senha que ta >>armazenada com encrypt()??? >> >>O problema ta em testar a senha antiga, pq o encrypt usa o salt e se >>vc fizer encrypt('teste') 10 x tera 10 valores diferente, entao nao da > > >>pra fazer update senha =encrypt(senhanova) from email where senha = >>encrypt(senha_antiga); :-( >> >>[]s >>_______________________________________________ >>freebsd mailing list >>freebsd@fug.com.br >>http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br >> >> > > _______________________________________________ > freebsd mailing list > freebsd@fug.com.br > http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br > > _______________________________________________ > freebsd mailing list > freebsd@fug.com.br > http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFD9MO0e+9A2H6dRtYRA7bZAJ9OMy3AIkFDOfNLjo7WHBvnOFmJ/QCff6rt QAufuZPEabWG20JbpZ3RyVM= =T97M -----END PGP SIGNATURE----- _______________________________________________ freebsd mailing list freebsd@fug.com.br http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br