Home > Backend Development > C++ > Random password generator in C

Random password generator in C

WBOY
Release: 2023-09-03 17:25:04
forward
1345 people have browsed it

Random password generator in 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;
}
Copy after login

输出

The randomly generated password is: )^a3cJciyk
Copy after login

测试用例说明

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

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

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

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

结论

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

The above is the detailed content of Random password generator in C. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template