Maison > développement back-end > C++ > le corps du texte

Générateur de mot de passe aléatoire en C

WBOY
Libérer: 2023-09-03 17:25:04
avant
1312 Les gens l'ont consulté

Générateur de mot de passe aléatoire en C

在本文中,我们将深入探讨与C编程中的字符串操作相关的一个有趣且实用的问题。我们将在C语言中构建一个“随机密码生成器”。这个问题不仅可以增强您对字符串操作的理解,还可以增加您对C标准库的知识。

问题陈述

任务是构建一个生成指定长度的随机密码的程序。密码应包含大小写字母、数字和特殊字符。

C 解决方案方法

为了解决这个问题,我们将利用C标准库的强大功能。我们将使用rand()函数在指定范围内生成随机数。我们将创建一个包含密码可能包含的所有字符的字符串,然后对于密码中的每个字符,我们将从这个字符串中随机选择一个字符。

示例

这是实现随机密码生成器的 C 代码 -

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void generatePassword(int len) {
   char possibleChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()";
   char password[len+1];
   
   srand(time(0)); // seed for random number generation
   for(int i = 0; i < len; i++) {
      int randomIndex = rand() % (sizeof(possibleChars) - 1);
      password[i] = possibleChars[randomIndex];
   }
   
   password[len] = '\0'; // null terminate the string
   printf("The randomly generated password is: %s\n", password);
}

int main() {
   int len = 10; // desired length of password
   generatePassword(len);
   return 0;
}
Copier après la connexion

输出

The randomly generated password is: )^a3cJciyk
Copier après la connexion

测试用例说明

假设我们想要生成一个长度为10的密码。

当我们将这个长度传递给生成密码函数时,它会生成一个由10个字符组成的随机密码。

该函数构造一个由密码可以包含的所有可能字符组成的字符串。然后它使用 rand() 函数生成一个随机索引,用于从可能的字符字符串中挑选一个字符。它会针对指定的密码长度重复此过程。

请注意,由于我们算法的随机性,每次运行此程序时,它都会生成不同的密码。

结论

这个问题提出了一个有趣的 C 语言随机数生成和字符串操作用例。理解和练习如何有效地使用 C 标准库是一个很棒的问题。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal