Python实现简单生成验证码功能【基于random模块】


Posted in Python onFebruary 10, 2018

本文实例讲述了Python实现简单生成验证码功能。分享给大家供大家参考,具体如下:

验证码一般用来验证登陆、交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内置函数来实现一个简单的验证码功能。

import random
def veri_code():
  li = []
  for i in range(6): #循环6次,生成6个字符
    r = random.randrange(0, 5) #随机生成0-4之间的数字
    if r == 1 or r == 4:  #如果随机数字是1或者4时,生成0-9的数字
      num = random.randrange(0, 9)
      li.append(str(num))
    else:  #如果不是1或者4时,生成65-90之间的数字
      temp = random.randrange(65, 91)
      char = chr(temp)  #将数字转化为ascii列表中对应的字母
      li.append(char)
  r_code = ''.join(li)  #6个字符拼接为字符串
#  print('\033[31;1m%s\033[0m' % r_code)
  return r_code  #返回字符串
#测试
print(veri_code())#运行结果:BKT8RL

基本原理是使用random,随机生成数字:

1.要几个字符就循环几次

2.随机生成一个数字,定义如果这个数字为其中某值X时,再随机一个0-9中间的数字。为什么0-9呢,因为10的话就占了两个字符了........

3.循环时,随机数字如果不为X时,生成一个65-90之间的数字,然后使用char()函数转化为ascii列表中对应的字母,当然就是大写的A-Z啦

4.将生成的字符加入列表,最后将列表拼接成字符串就O了

Python 相关文章推荐
Python实现查找系统盘中需要找的字符
Jul 14 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
python with (as)语句实例详解
Feb 04 Python
tensorflow之并行读入数据详解
Feb 05 Python
python动态规划算法实例详解
Nov 22 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
Pygame Draw绘图函数的具体使用
Nov 17 Python
Django中Forms的使用代码解析
Feb 10 #Python
Python中列表与元组的乘法操作示例
Feb 10 #Python
Python程序运行原理图文解析
Feb 10 #Python
Python迭代器和生成器定义与用法示例
Feb 10 #Python
Python中装饰器学习总结
Feb 10 #Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 #Python
Python中生成器和迭代器的区别详解
Feb 10 #Python
You might like
一个SQL管理员的web接口
2006/10/09 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
react-router实现按需加载
2017/05/09 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
在Python中使用正则表达式的方法
2015/08/13 Python
分析python切片原理和方法
2017/12/19 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
linux面试题参考答案(1)
2016/01/22 面试题
自我评价的正确写法
2013/09/19 职场文书
初一家长会邀请函
2014/01/31 职场文书
体育节口号
2014/06/19 职场文书
项目委托协议书(最新)
2014/09/13 职场文书