Gerador de Senha
Publicado por Caio Marcus de Souza Dutra (última atualização em 13/05/2021)
[ Hits: 1.990 ]
Algoritmo simples que gera uma senha a partir de números, letras e símbolos aleatórios.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> char key_range[77] = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', '_', '.', '-', '$', '%', '/', '&', '(', ')', '[', ']', '?', '!', '@', '=', '+', '*' }; char * key_generate (int type, int qtd) { char * pass_generated; int x1 = 0, x2 = 0; pass_generated = (char *) malloc (qtd * sizeof (char)); if (pass_generated == NULL) return (NULL); srand(time(NULL)); /* Types: 1 - Numbers only 2 - Letters only 3 - Numbers and Letters 4 - Hard pass. */ switch (type) { case 1: x1 = 0; x2 = 9; break; case 2: x1 = 10; x2 = 49; break; case 3: x1 = 0; x2 = 49; break; case 4: x1 = 0; x2 = 76; break; default: return (NULL); } for (int n = 0; n < qtd; n++) pass_generated[n] = key_range[x1 + rand () % x2]; return (pass_generated); } void clean_screen () { system("clear"); printf ("**************************************************\n"); printf ("** GENERATES A RANDOMIC KEY ** STRONG PASSWORD **\n"); printf ("** **\n"); printf ("**************************************************\n"); printf ("\n"); } int main ( ) { int t, q; char * pass = NULL; while (1) { clean_screen(); printf ("Choose your password type: \n"); printf (" 1 - Numbers only;\n"); printf (" 2 - Letters only;\n"); printf (" 3 - Numbers and Letters;\n"); printf (" 4 - Hard pass;\n"); printf (" 0 - Let me out.\n"); printf ("\n: "); scanf ("%d", &t); if (t == 0) return (0); printf ("Ok.. and how many characters? "); scanf ("%d", &q); if (q == 0) { printf ("I'm sorry! You can't generate a password with no characters...\n"); printf ("Please, tell me again how many characters do you want for your password: "); scanf ("%d",&q); if (q == 0) { printf ("\nOk. We can't go on this way. I'm going to mom's and taking Jack with me. See you in hell..\n"); getch(); return (0); } } printf ("Ok... wait a minute while we generate your password... Here we go:\n"); pass = key_generate (t, q); if (pass == NULL) printf ("Oh, no! Something went wrong! I'm sorry, try again.\n"); else for (int i = 0; i < q; i++) printf ("%c", pass[i]); free (pass); getch(); } return (0); }
Mini Analisador Léxico que conta palavras numa string
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (3)
Instalação Uefi com o instalador clássico do Mageia (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta