pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)
本文介绍Python3中String模块ascii_letters和digits方法,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9.string.punctuation是所有标点'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
String模块中的常量:
string.digits:数字0~9
string.ascii_letters:所有字母(大小写)
string.lowercase:所有小写字母
string.printable:可打印字符的字符串
string.punctuation:所有标点
string.uppercase:所有大写字母
- >>> import string
- >>> string.digits
- ''
- >>> string.letters
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
- >>> string.lowercase
- 'abcdefghijklmnopqrstuvwxyz'
- >>> string.printable
- '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
- >>> string.punctuation
- '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
- >>> string.uppercase
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- #!/usr/bin/env python
# encoding: utf-8
#@author: jack
#@contact: 935650354@qq.com
#@site: https://www.cnblogs.com/jackzz
#@software: PyCharm- import threading
import queue
import random, string- class ThreadPool:
def __init__(self, n):
"""
构造一个指定数量线程的线程池.
:param n: 线程数量
"""
self.queue_obj = queue.Queue()
for i in range(n):
# 开启池中的线程对象
threading.Thread(target=self.worker, daemon=True).start()- def worker(self):
"""
线程对象, 写while True是为了能够一直去执行任务.
:return: None
"""
while True:
func = self.queue_obj.get()
func()
self.queue_obj.task_done()- def apply_async(self, func):
"""
向队列中传入的需要执行的函数对象.
:param func: 函数对象
:return: None
"""
self.queue_obj.put(func)- def join(self):
"""
等待队列中的内容被取完.
:return: None
"""
self.queue_obj.join()- def rand_str(num, length=8):
with open('pwd_dir.txt', 'w') as f:
for i in range(num):
chars = string.ascii_letters+string.digits+string.punctuation
s = [random.choice(chars) for i in range(length)]
s=set(s)
f.write('{0}\n'.format(''.join(s)))
f.close()- if __name__ == '__main__':
P = ThreadPool(100)#不怕内存溢出的小伙伴往大了设,一般100个满足日常所需了
P.apply_async(rand_str(200000000))#跑个2E个组合的字典
P.join()
python2 方法一、
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import random
- import string
- #第一种方法
- seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-"
- sa = []
- for i in range(8):
- sa.append(random.choice(seed))
- salt = ''.join(sa)
- print salt
方法二、
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import random
- import string
- salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))
- print salt
pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)的更多相关文章
- QTP生成随机数字+字母
以下函数实现随机生成17位数(包括字母和数字),仍有改进的空间,可根据具体要求适当修改 Dim targetstring '调用返回函数给变量.Function过程通过函数名返回一个值 targets ...
- 利用JavaScript生成随机数字!
<!DOCTYPE html> <html> <head> <title>1-99的随机数字</title> <script type ...
- Oracle中如何生成随机数字、随机字符串、随机日期
.随机小数 dbms_random.value(low,high): --获取一个[low,high)之间的小数,包含low,不包含high 可以结合trunc函数获取整数 例如: select db ...
- [转]java生成随机数字和字母组合
摘自 http://blog.csdn.net/xiayaxin/article/details/5355851 import java.util.Random; public String getC ...
- java 生成随机数字+字母组合 和字母组合
生成随机数包含数字,字母 /** * 生成随机数当作getItemID * n : 需要的长度 * @return */ private static String getItemID( int n ...
- java 生成随机数字
for(int i=0;i<size1;i++){ int n = (int)(java.lang.Math.random()*99); LinkNode newLink = new LinkN ...
- C# 生成四位数字字母混合验证码
private static void Rand() { var arr = new List<string>(); ; i < ; i++) { arr.Add(i.ToStrin ...
- Mysql 生成随机数字
其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 round() 函数. 具体为:select round(rand()*10 ...
- go生成随机数字验证码
一行代码搞定 code := fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n( ...
随机推荐
- Laravel HTML导出 PDF ----- wkhtmltopdf Laravel-snappy
需求:将复杂的展示页 (包含大量 echarts) 转换成 PDF供用户下载 1.下载安装wkhtmltoxpdf 选择自己的系统版本下载并安装 rpm -ivh wkhtmltox--.centos ...
- C#操作XML文档
Note: '=> ' 表示返回值 参考资料:请点击这里! 1:创建Xml文档 2:写Xml文档(必须保证有根元素) XmlDocument Xd (实例化一个对象) CreateXmlDecl ...
- Python: 截屏
最近项目中想实现截屏功能,使用的笔记本是高清屏,实际屏幕设置成了150%,所以在截屏的时候遇到个各种问题. 最开始使用PIL ImageGrab来截取屏幕,如果本来是100%的设置没有问题,能截取到全 ...
- Ubuntu 16.4系统下安装docker
本文将介绍在ubuntu16.04系统下安装和升级docker.docker-compose.docker-machine. docker:有两个版本:docker-ce(社区版)和docker-ee ...
- 2019 蓝鲸人java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.蓝鲸人等公司offer,岗位是Java后端开发,因为发展原因最终选择去了蓝鲸人,入职一年时间了,也成为了面试官 ...
- vue+element打印页面功能
项目中遇到了要打印页面的功能,我感之前使用的是一个第三方的插件,但是不兼容IE,后来发现直接调用window的API就可以了,MMP // 打印表单 printBtn() { window.print ...
- JDK安装—JAVA
下载JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 关于版本选择需要注意的问题: 如果eclip ...
- 适用于Centos6/7,vsftp自动安装脚本
#!/bin/bash #vsftp install . /etc/rc.d/init.d/functions NUM=`rpm -q centos-release | awk -F '-' '{pr ...
- Linux搭建邮件服务器Postfix+Dovecot+MySQL+PHP
用于搭建的服务器信息 阿里云 Centos 6.5 32位 安装过程1.安装Postfix 版本(2:2.6.6-8.el6) yum -y install postfix 安装完成还需要替换系统自带 ...
- Python从零开始——运算符