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抓取网页图片并放到指定文件夹
Apr 24 Python
Python中查看文件名和文件路径
Mar 31 Python
python爬虫之百度API调用方法
Jun 11 Python
python实现二分查找算法
Sep 21 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
python如何去除字符串中不想要的字符
Jul 05 Python
python绘制直线的方法
Jun 30 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python异步实现定时任务和周期任务的方法
Jun 29 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python 内置函数globals()和locals()对比详解
Dec 23 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
短波的认识
2021/03/01 无线电
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP生成带有雪花背景的验证码
2008/09/28 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
vue使用websocket的方法实例分析
2019/06/22 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Python: glob匹配文件的操作
2020/12/11 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
岳父生日宴会答谢词
2014/01/13 职场文书
教师见习报告范文
2014/11/03 职场文书
2015年度党员个人总结
2015/02/14 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书