Generar contraseñas de longitud dada

Dado un número entero N , la tarea es generar contraseñas aleatorias de longitud N de nivel fácil, medio y fuerte cada una.

Contraseña de nivel fácil: consta solo de números o letras.
Contraseña de nivel medio: consta de letras y números.
Contraseña de nivel fuerte : consta de letras, números y/o caracteres especiales.

Ejemplos:

Entrada: N = 5
Salida:
Contraseña de nivel fácil (solo números): 98990
Contraseña de nivel fácil (solo letras): tpFEQ
Contraseña de nivel medio: b3bC8
Contraseña de nivel fuerte: 7`74n

Entrada: N = 7
Salida:
Contraseña nivel fácil (solo números): 7508730
Contraseña nivel fácil (solo letras): mDzKCjN
Contraseña nivel medio: 4Z05s66
Contraseña nivel fuerte: 2384Qu9

Enfoque:
siga los pasos a continuación para resolver el problema:

  • Para cada nivel de contraseña, repita la longitud dada.
  • Para generar cada contraseña, asigne caracteres y números al azar mediante la generación de números aleatorios en función del nivel de la contraseña.

A continuación se muestra la implementación del enfoque anterior:

C

// C program to generate
// password of given length
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
  
// Function to generate easy level
// password with numbers
void easylevelpassnumbers(int n)
{
    int i;
  
    // Random character generation
    // setting the seed as TIME
    srand(time(NULL));
    printf("Easy level password "
           "(only numbers): ");
    for (i = 0; i < n; i++) {
  
        // rand() to assign random
        // characters in the password
        printf("%d", rand() % 10);
    }
    printf("\n");
}
  
// Function to generate easy level
// password with letters
void easylevelpassletters(int n)
{
    int i, d;
    printf("Easy level password"
           " (only letters): ");
    for (i = 0; i < n; i) {
        d = rand() % 123;
        if ((d >= 65 && d <= 90)
            || d >= 97) {
            printf("%c", (char)d);
            i++;
        }
    }
    printf("\n");
}
  
// Function to generate random
// medium level password
void midlevelpass(int n)
{
    int i, d;
    printf("Medium level password: ");
    for (i = 0; i < n; i++) {
        d = rand() % 123;
  
        // Random alphabetic characters
        if ((d >= 65 && d <= 90)
            || d >= 97) {
            printf("%c", (char)d);
        }
        else {
  
            // Random digits
            printf("%d", d % 10);
        }
    }
  
    printf("\n");
}
  
// Function to generate strong
// level password
void stronglevelpass(int n)
{
    int i, d;
    printf("Strong level password: ");
    for (i = 0; i < n; i++) {
        d = rand() % 200;
  
        // Random special characters
        if (d >= 33 && d <= 123) {
            printf("%c", (char)d);
        }
        else {
  
            // Random digits
            printf("%d", d % 10);
        }
    }
  
    printf("\n");
}
  
// Driver Code
int main()
{
    int n = 5;
  
    easylevelpassnumbers(n);
    easylevelpassletters(n);
    midlevelpass(n);
    stronglevelpass(n);
}
Producción:

Easy level password (only numbers): 36707
Easy level password (only letters): cQWxF
Medium level password: 56G4w
Strong level password: 83s20

Complejidad temporal: O(N)
Espacio auxiliar: O(N)

Publicación traducida automáticamente

Artículo escrito por ayushtamra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *