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中基础的socket编程实战攻略
Jun 01 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
Python logging设置和logger解析
Aug 28 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
python多进程并发demo实例解析
Dec 13 Python
如何基于python实现归一化处理
Jan 20 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
python中adb有什么功能
Jun 07 Python
python ssh 执行shell命令的示例
Sep 29 Python
Python制作表白爱心合集
Jan 22 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
python字符串连接方式汇总
2014/08/21 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
什么是数据抽象
2016/11/26 面试题
培训演讲稿范文
2014/01/12 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
2014年外联部工作总结
2014/11/17 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
Win10系统下配置Java环境变量
2021/06/13 Java/Android
详解jQuery的核心函数和事件处理
2022/02/18 jQuery