Como salvar efetivamente a senha do banco de dados no aplicativo de desktop?
-
23-09-2019 - |
Pergunta
Estou fazendo um aplicativo de desktop (vamos chamar de aplicativo) que usa o banco de dados (MySQL). Mais usuários do aplicativo compartilham um usuário de banco de dados. Exemplo: os usuários de John e Mike App se conectam ao DB como "dbuser", etc.
O problema é : Como economizo efetivamente senhas para usuários de banco de dados? (Os PWDs dos usuários do aplicativo são armazenados no banco de dados).
Possíveis soluções que encontrei: 1. No código - isso é realmente muito estúpido: D 2. No arquivo INI Text - fácil de ler! 3. Criptografado no arquivo externo - bom, mas precisa de acesso ao aplicativo.
Solução
(Os PWDs dos usuários do aplicativo são armazenados no banco de dados).
Criptografar senhas armazenadas usando SHA1/SHA2 algoritmo. Esta é a técnica mais usada. Não sou um desenvolvedor .NET, mas tenho certeza de que eles fornecem a função em algum lugar.
Quando o usuário faz login, criptografar novamente a senha fornecida e compare -a com a armazenada. Se eles forem iguais, deixe o usuário fazer login.
Outras dicas
Você pode armazená -lo no arquivo ini no formato criptografado. Essa é a melhor maneira de IMHO. Eu armazena a string de conexão no app.config do aplicativo .NET no formato criptografado.
EDITAR:
Para editar a string de conexão, eu uso outro valor de configuração em appsettings do arquivo app.config csencryption = "y | n | r"
Se for y, a sequência de conexão é criptografada, descriptografando e use -a.
Se for n, a string de conexão não será criptografada, use -a diretamente.
Se for r, a string de conexão não será criptografada, criptografa -a e atualize a string de conexão e defina a CSENCRYTION como 'y' no app.config.