Scratch之生成验证码

2020-10-14 22:26
电脑报 2020年37期
关键词:电脑报字符列表

相信你对于在网站上登录时需要输入验证码已经习以为常。验证码是一种区分用户是计算机还是人的验证程序,可以防止恶意破解密码。传统验证码是由随机的扭曲数字和字母所构成,如果输入的字符和验证码相同则通过验证,否则的话无法通过验证。

今天我们用Scratch来模拟这个过程,程序自动生成由数字、大小写字母组合成的验证码。这个程序设计思路上没有直接生成随机字符而是通过产生随机数的办法来从列表中随机取字符。我们需要预备一个大小写共存(a-z,A-Z)的字母列表,用随机数提取里面的字母。数字的内容从0-9之间进行选取。

我们设定在验证码中字母和数字产生的比例不相同,字母占25%,数字占75%(比例可以任意调整)。

首先設定需要的变量及列表。“字母列表”用于存放大小写字母,共52个字母。用“password”列表依次存放单次循环结束后产生的字符。“word”用于存放password列表中所有内容拼接后的结果。

当程序运行后,首先清空password列表中内容,将变量i设为1,变量word设置为空。验证码的位数可以自行确定,用重复循环执行6次将验证码设置为6位。在循环的过程中首先我们进行概率判断,在1-4之间随机生成一个数字,如果生成结果为1,那么任意从0-9中选择一个数字添加到password列表中,否则从字母列表中任选一个数添加到password列表中,这样就实现了25%的概率出现数字,75%的概率出现字母。当所有的循环结束之后,可以看到password列表存储了六个字符,接下来需要将password列表中的数字进行组合。首先重复执行password列表的项目数,在循环过程中,依次提取出列表中的每一项的值然后连接到变量word中。这样一个随机验证码就生成好了,显示变量word就可以了(图2)。

程序随机产生验证码之后,弹出一个输入框,用户可以把验证码输入后用回答等于word的判断进行校对,就可以模拟验证码的校验功能了。

本实例通过预设的字母列表把生成的1-52个随机数转换为随机大小写字母。相信你可以想到更多类似的用法。

孩子系统学编程的好帮手

电脑报出品的《Scratch3.9青少年编程高分宝典》,由电脑报联合数橙科学一线名师倾力编写,是系统学习Scratch编程的优秀教材。采用最新版Scratch 编写代码,全书由浅入深分为编程基础指令;作品分析、创作;算法挑战;综合实战四部分。专为青少年系统学习图形化编程打造,知识体系完备,并配有等级考试和蓝桥杯比赛真题库,是中小学计算机教学和编程入门必备的工具书。目前已经上市,在当当网、京东和淘宝各大平台均有销售。

猜你喜欢
电脑报字符列表
Python实现图片转字符画
电脑报自营店年末大促
电脑报自营店双11大促
电脑报自营店国庆大促
扩列吧
电脑报自营店元旦大促
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
列表法解分式方程问题探索
列表画树状图各有所长