Tenho uma aplicação que faz a conexão com o BD a partir da leitura de um arquivo de texto(localizado na pasta do projeto) com os parâmetros de conexão, tais como url, usuário, senha, etc. Gostaria de salvar a senha criptografada no arquivo, mas não sei como fazer o caminho reverso, ou seja, descriptografar na hora de ler e criar a conexão.
Na tela de login, estou validando o acesso do usuário apenas criptografando a senha digitada e comparando com a que está salva no banco.
Mas quanto à conexão com a base de dados, como posso fazer, sendo que o usuário não vai ter acesso a esta senha ?
Gostaria de fazer isso porque senão, qualquer usuário com um pouco de conhecimento conseguirá pegar a senha no arquivo e ter acesso a base de dados!
Se você for publicar esta app não é interessante que a senha fique visivel em um arquivo texto. (como você disse)
Mesmo salvando a senha criptografada no arquivo você precisará descriptografar no codigo, então,
não seria melhor deixar a senha logo no código da aplicação ?
[quote=magostta]Se você for publicar esta app não é interessante que a senha fique visivel em um arquivo texto. (como você disse)
Mesmo salvando a senha criptografada no arquivo você precisará descriptografar no codigo, então,
não seria melhor deixar a senha logo no código da aplicação ?
[/quote]
O problema é que estes parâmetros mudam conforme o cliente e, se for deixar no código, preciso gerar um .jar para cada um, por isso a idéia do arquivo
Uai, que rotina você está usando para criptografar a senha? Se a biblioteca que você usa não tem um método para descriptografar a senha, ela não serve para nada.
Bom, você escolheu um método que não criptografa nada, que é o MD5, e que não pode ser invertido.
Ele serve para você criar uma espécie de “noves fora” da sua senha, ou seja, se você achar uma outra senha que tenha o mesmo valor de MD5, você irá aceitar a senha.
Normalmente ele é usado quando você não pode guardar a senha, mesmo criptografada.
Se você precisa guardar uma senha de banco, precisa usar um método que criptografa e descriptografa, como o AES ou o TripleDES.
[quote=entanglement]Bom, você escolheu um método que não criptografa nada, que é o MD5, e que não pode ser invertido.
Ele serve para você criar uma espécie de “noves fora” da sua senha, ou seja, se você achar uma outra senha que tenha o mesmo valor de MD5, você irá aceitar a senha.
Normalmente ele é usado quando você não pode guardar a senha, mesmo criptografada.
Se você precisa guardar uma senha de banco, precisa usar um método que criptografa e descriptografa, como o AES ou o TripleDES.
[/quote]
No seu caso, troque os valores “3, 1, 4, 1, 5, 9, 2, 6” para alguma outra coisa, senão alguém conseguirá descriptografar a senha só de ter o programa publicado aqui no GUJ.