Gerar senhas aleatórias é um dos exercícios iniciais para quem deseja avançar em segurança de sistemas. Nós já fizemos um artigo explicando como você pode gerar senhas, para mais detalhes leia a postagem completa: 23 Formas de Gerar e Guardar SENHAS FORTES; veja as explicações de comandos.
Nesse artigo conheceremos a lógica de gerar senhas com C++. Será um código simples usando somente senhas alfanuméricas, mas você pode melhorar adicionando caracteres especiais para tornar o código ainda mais completo.
Vamos ao passo a passo!
Nesse exemplo vamos organizar nosso código para caso quisermos adicionarmos futuramente para algum projeto, logo, criaremos um “header único”(só um arquivo: .hpp
), ou seja, a classe e a execução no mesmo arquivo:
vim genpass.hpp
Vamos agora adicionar 2 membros privados para usarmos na nossa função-membro, são eles:
std::string pass
- Que armazerará a string que será retornada para o objeto;const std::string charset
- A constante que possuirá os caracteres alfanuméricos, tanto com minúsculas como MAIÚSCULAS, além dos números;Essa função-membro receberá como argumento o tamanho da senha, você poderia escolher um valor mínimo padrão, mas vou deixar possível qualquer tamanho, mas é bom lembrar que senhas fortes possuem no mínimo 8 caracteres!
charset
de forma aleatória;pass
o caractere até atingir o máximo informado no argumento;genpass.hpp
finalAo final nosso arquivo completo ficará assim:
Vamos criar um novo arquivo main.cpp
e incluiremos nosso genpass.hpp
, e chamaremos a função-membro gen_pass()
com a quantidade de caracteres que queremos que nossa senha possua, nesse exemplo: Gerando uma senha alfanumérica com 8 caracteres!
Compile e rode:
g++ main.cpp && ./a.out
. Provável e similar saída:
Se quiser gerar com: 16, 32, 64 e 128 caracteres, respectivamente:
Simples e fácil, né?! Agora você já pode usar esse header único e adicionar aos seus projetos!