生成 CAPTCHA 并使用 Python 验证用户的程序

2024 年 8 月 29 日 | 4 分钟阅读

引言

本教程教我们如何使用 Python 生成验证码并验证用户。验证码用于各种网站,以检查用户是人类还是机器人。它主要用于安全目的。使用验证码,除了人类之外,任何人都无法进入网站。其主要目标是为实际问题制定实用的解决方案,这些解决方案对人类来说很容易,但对机器人或计算机来说却很困难。它们测试用户的认知能力。

换句话说,任务是每次创建一个独特的验证码并检查用户是否是人类。用户需要输入自动生成的验证码,并将生成的验证码与用户输入进行比较。

用于生成验证码代码的字符集存储在 chrs[] 字符数组中。char[] 包含 (a-z, A-Z, 0-9),因此 chrs[] 的大小为 62。

使用 rand() 函数在 Python 中生成一个随机数。可以写成 rand()%62。rand()%62 可以生成 0 到 61 之间的随机验证码。此函数用于每次生成唯一的验证码。生成一个随机数作为字符数组 chrs[] 的索引,从而创建一个新的验证码字符。此循环运行 n 次以生成给定长度的验证码。此处,n 表示验证码的长度。

示例

这里,我们举两个验证码输入输出的例子。

验证码有哪些类型?

有各种类型的验证码,包括:

  1. 基于文本的验证码
  2. 基于图像的验证码
  3. 基于音频的验证码
  4. 基于行为的验证码

算法

在这里,我们将学习如何使用 Python 生成验证码和验证用户的算法。

  1. 首先,导入 random 库。
  2. 然后,我们定义 CaptchaCheck 函数,该函数带有两个参数:Captcha 和 user_captcha。这些参数返回布尔值。
  3. 在 CaptchaCheck 函数中,我们将检查两个参数是否相等。如果两个参数相等,则返回 true;否则,返回 false。
  4. 然后,我们定义 CaptchaGenerator 函数来生成 n 长度的验证码。
  5. 使用此函数,定义一个包含所有值 (a-z, A-Z, 0-9) 的字符数组,这些值将用于生成验证码。
  6. 生成 n 长度的随机验证码。
  7. 在 main() 函数中,声明一个名为 Captcha 的不同字符串,并调用 CaptchaGenerator()(长度为 10)来生成一个随机验证码字符串。
  8. 然后,用户需要根据给定的验证码输入。
  9. 如果用户输入等于给定的验证码,则 CapchaCheck 函数会返回一条消息,说明验证码匹配。如果不相等,则此函数返回一条消息,说明验证码不匹配。

程序代码

这里我们提供一个使用 Python 程序生成验证码并验证用户的程序代码。代码如下:

输出

现在我们在 Python 中编译上述代码,并在成功编译后运行它。然后输出如下:

CAPTCHA is: hUWjrhv4n1
Enter the given CAPTCHA: hUWjrhv4n1
The CAPTCHA is Matched here

如果我们输入错误的验证码,则输出是:

CAPTCHA is: BFIVDLAca8
Enter the given CAPTCHA: BFIVDLAc
The CAPTCHA is not Matched here

结论

因此,在本教程中,我们学习了如何使用 Python 生成验证码和验证用户的程序。创建验证码是防止可疑人员访问您网站的好方法。验证码用于各种网站,以检查用户是人类还是机器人。每个网站都需要验证码,因为在当今的现代技术世界中,它的风险比以往任何时候都高。