
diegomrodrigues
(usa Fedora)
Enviado em 03/06/2018 - 19:19h
Opa!
Então, existem vários pontos que você pode pensar se estiver pensando em segurança da informação.
Um deles, é que se o usuário e a senha de acesso ao MySQL (ou qualquer SGBD) estiverem dentro do seu código fonte em C, sendo que depois você compila seu programa, gerando um executável, independente de como estiver sua comunicação com o banco de dados, qualquer pessoa que tenha seu executável pode 'descompilar' o programa e ter os dados de acesso. Pensando nisso, uma solução é não colocar a senha disponível em lugar algum que possa ser acessível pelas pessoas, como usando um acesso integrado com o sistema operacional, ou integrado com o banco de dados (alguém vai ter que digitar uma senha), ou tem que deixar a aplicação em local que as pessoas não acessam, ou ainda deve fazer uma aplicação servidora acessível sem senha e ela acessa o banco de dados (claro que ela terá que controlar o acesso por conta própria).
Quanto ao armazenamento de senhas dos usuários no MySQL, você pode utilizar o MD5, AES, dentre outras criptografias (ou hash).
INSERT INTO usuarios (login, senha) VALUES ('usuario_1', MD5('abc123'));
INSERT INTO usuarios (login, senha) VALUES ('usuario_2', AES_ENCRYPT('abc123', 'chave'));
SELECT nome, CAST(AES_DECRYPT(senha,'Chave_para_descriptografar') as char) from pessoa WHERE id ='2';
Abraço,
Diego M. Rodrigues