Python中简化的验证码功能实现
#!/usr/bin/env python
# _*_ encoding:utf-8 _*_
# author:snate
import random
def generate_auth_code():
auth_code_list =[]
for i in range(6): # 要生成几个验证码循环几次
num = random.randint(0,5) # 随机生成0到5之间的数字
if num ==1 or num == 4: # 若生成的数字为1,4,生成0-9的数字
code1= random.randrange(0,9) #
auth_code_list.append(str(code1))# 加入验证码列表
else:
code2 = random.randrange(65,90) # 若生成的数字不是1,4生成65,90之间的数字,并转化成对应的ascii码。
code2 = chr(code2).lower()
auth_code_list.append(code2) # 将字母加入到验证码列表
return "".join(auth_code_list) # 将列表转化成字符串
print(generate_auth_code())
基本原理是使用random,随机生成数字:
1.要几个字符就循环几次
2.随机生成一个数字,定义如果这个数字为其中某值X时,再随机一个0-9中间的数字。为什么0-9呢,因为10的话就占了两个字符了........
3.循环时,随机数字如果不为X时,生成一个65-90之间的数字,然后使用char()函数转化为ascii列表中对应的字母,当然就是大写的A-Z啦,然后将大写转化陈小写就可以。
4.将生成的字符加入列表,最后将列表拼接成字符串就O了、
Python中简化的验证码功能实现的更多相关文章
- python中简化的验证码功能
验证码一般用来验证登陆.交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内置函数来实现一个简单的验证码功能. import random def veri_c ...
- python中pyperclip库的功能
python3中pyperclip库的功能 作用就是复制.粘贴 例子 import pyperclip pyperclip.copy('Hello world!') pyperclip.paste() ...
- Python中raw_input() & input() 的功能对比
raw_input的功能是方便的从控制台读入数据. input与raw_input都是Python的内建函数,实现与用户的交互,但是功能不同. 一.raw_input 下面介绍让raw_input的 ...
- Python中str字符串的功能介绍
Str字符串的功能介绍 1. 字符串的操作 字符串的连接操作 符号: + 格式:str1 + str2 例如:str1 = 'I Love' str2 = 'You!' print(str1 + st ...
- python中time模块常用功能
import time time模块提供了大量对时间进行处理的方法 time.time() # 获取当前时间戳,得到自1970年开始的秒数 >>>time.time() 155487 ...
- python random 模块及验证码功能
random模块 import random random.random() random.randint(1,3) # 1-3的整数包括3 import random print(random.ra ...
- Python使用Timer实现验证码功能
from threading import Timer import random class Code: def __init__(self): self.make_cache() def make ...
- Python中的切片操作
python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>& ...
- Django学习笔记(17)——BBS+Blog项目开发(1)验证码功能的实现
本文主要学习验证码功能的实现,为了项目BBS+Blog项目打下基础. 为了防止机器人频繁登陆网站或者破坏分子恶意登陆,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是“Com ...
随机推荐
- Python3基础 逻辑运算 and or not 示例
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Go第十一篇之编译与工具
Go 语言的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有. 在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报告的 ...
- ACM-ICPC 2018 徐州赛区网络预赛H Ryuji doesn't want to study(树状数组)题解
题意:给你数组a,有两个操作 1 l r,计算l到r的答案:a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r] (L is the length of [ l, r ] that ...
- hdoj-2028-Lowest common multiple plus
题目:Lowest common multiple plus 代码: #include<stdio.h> int common(int a,int b)//计算最大公约数 { int c= ...
- 进制转换 hdoj-2031
进制转换,原题目:hdoj-2031 题目描述: 输入两个整数,十进制数n(32位整数)和进制r(2<=r<=16 r!=10),求转换后的数. 输入: 7 2 23 12 -4 3 输出 ...
- MVC ---- 如何使用Predicate以及如何自定定义Predicate委托
微软公司提供只能返回bool值,接受一个参数的委托类型(Predicate). //Predicate委托 public static class PredicateDemo{ //内置方法 publ ...
- Spring Boot入门——文件上传与下载
1.在pom.xml文件中添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- Java线程池队列吃的太饱,撑着了咋整?java 队列过大导致内存溢出
Java的Executors框架提供的定长线程池内部默认使用LinkedBlockingQueue作为任务的容器,这个队列是没有限定大小的,可以无限向里面submit任务. 当线程池处理的太慢的时候, ...
- yii CFormModel中的rules验证机制
public function rules() { return array( array('username, password', 'required'), array('rememberMe', ...
- 013 - 关于GC root: Native Stack | MAT分析
Question: I have some third library code that I run and after some time I run into OutOfMemoryEr ...