用Python實現隨機驗證碼

2021-09-03 09:30:27 字數 2682 閱讀 6149

0.說明

在網路上各種平台上登陸時,都會看到各種各樣的驗證碼,大部分都是字母+數字的隨機驗證碼,下面來主要是通過python生成乙個可以包含大小寫字母和數字的隨機驗證碼。

1.思路

在python中,內建函式chr可以將相應的0~255的數字轉換為相應的字元,而ord則可以將字元碼轉換為相應的ascii值,如下:

>>> chr(65)

'a'>>> 

>>> ord('a')

65

不過這裡我們主要使用chr,即只要可以隨機生成大小寫字母所對應的ascii值,就可以通過chr函式將其轉換為對應的大小寫字母,從而拼接成為隨機驗證碼。

2.大小寫字母所對應的ascii值

通過查詢ascii碼表可以知道:

大寫字母ascii值範圍:65~90

小寫字母ascii值範圍:97~122

3.python中的random模組

random模組中最常用的函式介紹如下:

>>> random.randint(1, 2)

2>>> random.randint(1, 2)

2>>> random.randint(1, 2)

2>>> random.randint(1, 2)

1

>>> random.randrange(1,3)

1>>> random.randrange(1,3)

2>>> random.randrange(1,3)

2

>>> random.uniform(1, 2)

1.2845602051034062

>>> random.uniform(1, 2)

1.0178567905561313

>>> random.uniform(1, 2)

1.8440532614481977

>>> random.random()

0.04360809434722357

>>> random.random()

0.7386566820354784

>>> random.random()

0.8564193451546396

>>> random.choice('xpleaf')

'l'>>> random.choice('xpleaf')

'f'>>> random.choice('xpleaf')

'f'>>> random.choice([1, 2, 3])

1>>> random.choice([1, 2, 3])

1>>> random.choice([1, 2, 3])

3

在接下來的程式中,主要使用randint和choice兩個函式。

4.用python生成隨機驗證碼

下面的例子中生成的驗證碼可能包含大寫字母、小寫字母、數字,或者是其中的一種,或者是兩種的組合,也或者是三種的組合。

完整**如下:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import random

def generate(check_num=4):

temp = ''

for i in range(check_num):         # check_num為需要迴圈的次數,也就是需要生成驗證碼的個數,預設為4

choice = random.randint(1, 3)   # 生成1到3的隨機數

if choice == 1:                 # 如果choice為1,則隨機驗證碼的值為數字

temp += random.choice('0123456789')

elif choice == 2:               # 如果choice為2,則隨機驗證碼的值為大寫字母

num = random.randint(65, 90)

temp += chr(num)

elif choice == 3:               # 如果choice為3,則隨機驗證碼的值為小寫字母

num = random.randint(97, 122)

temp += chr(num)

return temp

# 測試

temp1 = generate()

print('生成4位隨機驗證碼:', temp1)

temp2 = generate(5)

print('生成5位隨機驗證碼:', temp2)

te*** = generate(6)

print('生成6位隨機驗證碼:', te***)

程式執行結果如下:

生成4位隨機驗證碼: 8xyg

生成5位隨機驗證碼: z35nu

生成6位隨機驗證碼: 8oall9

5.更進一步的使用

希望可以幫到有需要的朋友。

隨機驗證碼 python

功能 隨機驗證碼 日期 01 22 2019 注意 randrange 返回乙個遞增集合的隨機數,使用它必須匯入random包 randint 返回乙個隨機數 chr 返回乙個字元,以整數為引數 import random def check code check code for i in ran...

隨機驗證碼的實現

隨機驗證 隨機生產6位數字 漢字 大小寫字母並且進行驗證 隨機生成數字 var s math.floor math.random 10 隨機生成漢字 var string 中國語言文本網將由教育部語言文字應用研究所主辦和執行管理,新 訪問入口更改 var s string.charat math.f...

隨機驗證碼

function window,document if object.prototype.tostring.call options object object else this options.numarr 0,1,2,3,4,5,6,7,8,9 split this options.lette...