Array
(
)

gravar a senha criptografada

Programalista
   - 15 set 2004

Srs, bom dia!
Na aplicação que estou desenvolvendo usando Delphi7+Firebird1.5 e DBExpress, gostaria de saber como no cadastro de usuários, armazenar a senha do mesmo, criptografada no banco de dados.

Agradeço desde já.


Vinicius2k
   - 15 set 2004

Colega,

Depende um pouco do nível de segurança que vc pretende ter...
Vc mesmo pode criar uma pequena rotina de encriptação e decriptação que utilize inversões de caracteres, e/ou funções como mod e div... no site da ClubeDelphi tem um exemplo de rotinas para isso... http://www.clubedelphi.net/artigos/cript_text.asp

Vc pode também utilizar componentes ou algorítimos, que utilizem métodos ´pesados´ de criptografica como, Blowfish, Rijndael ou RSA...
Eu recomendo estes : http://sourceforge.net/projects/tplockbox/
É Open Source... mas vai requerer algum tempo seu para estudo, já que são profissionais...

Espero ter ajudado...
T+


Cebikyn
   - 15 set 2004

Não se usa guardar senhas, nem mesmo criptografadas! Armazena-se o Hash da senha no banco (sem qualquer criptografia), e na hora que for necessária a verificação, compara-se o Hash do que texto digitado com o Hash armazenado. Isto garante uma boa segurança, pois não é possível obter a senha a partir do Hash e não há dois textos com o mesmo Hash.

Mais informações sobre o Hash em:
http://paginas.terra.com.br/informatica/cebikyn/seguranca/cripto_gloss.htm#Hash

Para usar Hash no Delphi, verifique o segundo link do Vinicius2 (a cima).

Se tiver dúvidas, deixe uma msg como resposta a este tópico.


Beppe
   - 16 set 2004


Citação:
Isto garante uma boa segurança, pois não é possível obter a senha a partir do Hash e não há dois textos com o mesmo Hash.

Mas é possível que alguém faça um update na tabela com um hash de um texto conhecido. Com criptografia de chave privada/pública, isto não acontece, pois deve saber-se a chave privada, que fica em domínio do desenvolver, que deve esconder em algum lugar do aplicativo. Agora, se ninguém tem acesso ao banco, acho que não é necessário nehum tipo de segurança adicional.