相信你對于在網站上登錄時需要輸入驗證碼已經習以為常。驗證碼是一種區(qū)分用戶是計算機還是人的驗證程序,可以防止惡意破解密碼。傳統(tǒng)驗證碼是由隨機的扭曲數字和字母所構成,如果輸入的字符和驗證碼相同則通過驗證,否則的話無法通過驗證。
今天我們用Scratch來模擬這個過程,程序自動生成由數字、大小寫字母組合成的驗證碼。這個程序設計思路上沒有直接生成隨機字符而是通過產生隨機數的辦法來從列表中隨機取字符。我們需要預備一個大小寫共存(a-z,A-Z)的字母列表,用隨機數提取里面的字母。數字的內容從0-9之間進行選取。
我們設定在驗證碼中字母和數字產生的比例不相同,字母占25%,數字占75%(比例可以任意調整)。
首先設定需要的變量及列表?!白帜噶斜怼庇糜诖娣糯笮懽帜福?2個字母。用“password”列表依次存放單次循環(huán)結束后產生的字符。“word”用于存放password列表中所有內容拼接后的結果。
當程序運行后,首先清空password列表中內容,將變量i設為1,變量word設置為空。驗證碼的位數可以自行確定,用重復循環(huán)執(zhí)行6次將驗證碼設置為6位。在循環(huán)的過程中首先我們進行概率判斷,在1-4之間隨機生成一個數字,如果生成結果為1,那么任意從0-9中選擇一個數字添加到password列表中,否則從字母列表中任選一個數添加到password列表中,這樣就實現了25%的概率出現數字,75%的概率出現字母。當所有的循環(huán)結束之后,可以看到password列表存儲了六個字符,接下來需要將password列表中的數字進行組合。首先重復執(zhí)行password列表的項目數,在循環(huán)過程中,依次提取出列表中的每一項的值然后連接到變量word中。這樣一個隨機驗證碼就生成好了,顯示變量word就可以了(圖2)。
程序隨機產生驗證碼之后,彈出一個輸入框,用戶可以把驗證碼輸入后用回答等于word的判斷進行校對,就可以模擬驗證碼的校驗功能了。
本實例通過預設的字母列表把生成的1-52個隨機數轉換為隨機大小寫字母。相信你可以想到更多類似的用法。
電腦報出品的《Scratch3.9青少年編程高分寶典》,由電腦報聯合數橙科學一線名師傾力編寫,是系統(tǒng)學習Scratch編程的優(yōu)秀教材。采用最新版Scratch 編寫代碼,全書由淺入深分為編程基礎指令;作品分析、創(chuàng)作;算法挑戰(zhàn);綜合實戰(zhàn)四部分。專為青少年系統(tǒng)學習圖形化編程打造,知識體系完備,并配有等級考試和藍橋杯比賽真題庫,是中小學計算機教學和編程入門必備的工具書。目前已經上市,在當當網、京東和淘寶各大平臺均有銷售。