資訊管理系統的驗證碼模組(python實現)

2020-10-03 11:00:13

資訊管理系統的驗證碼模組(python實現)

使用random.sample(s,k)方法

#驗證碼功能
import random
def codecheck():
	s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    while True:
        rand_list = random.sample(s, 4)     #隨機從0~9中匯入四個數位,儲存在rand_list裡面(可以包含大小寫字母,改動主函數中列表S的元素即可)
        str1 = [str(n) for n in rand_list]      #將rand_list中的int型全部轉換為str型,並儲存在str1裡面
#不能直接使用join方法將rand_list直接轉換合併為一個字串,原因略
        code = ''.join(str1)        #將str1中元素合併成一個字串
        print('驗證碼:%s'%code)
        input1 = input("請輸入驗證碼:")
        if input1 == code:      #比對兩個字串的內容
            print("驗證成功")
            break       #成功,跳出
        else:
            print("驗證失敗")


PS:sample這個方法直接從列表裡挑選指定個數的元素隨機輸出,個人認為比較方便,也可以在列表裡新增大小寫字母,以及符號生成混合驗證碼。

PPS:可以直接在列表裡把數位以字串型別存放,免去了上面程式碼中將列表rand_list中元素放入列表str1並轉換為字串型別的步驟