有个需求,需要伪造跟用户行为非常类似的账号密码,而且需要一个阀值控制伪造的数量。

在这需求上,还有一个就是需要控制生成的比率、跳出率不能过高或者太低。

对此就随手用python写了一个,bug不知道有木有,没有测,具体有兴趣可以去改改。

#coding:utf-8import randomclass create_data:global zimu_xx,zimu_dx,number,teshu# 生成26个英文字母,大小写zimu_xx=[chr(i) for i in range(97,123)]zimu_dx=[chr(i).upper() for i in range(97,123)]# 生成随机的数字范围在(1-8000)number=[i for i in range(1,8001)]# 生成特殊字符串teshu=['!','@','#','$','%','^','&','*','(',')','_','+','-','=','|','}','{','[',']',';','"',',','<','>','.','?','/']def __init__(self):self.u_1=0self.u_2=0self.u_3=0self.u_4=0self.p_1=0self.p_2=0self.p_3=0self.p_4=0self.p_5=0self.p_6=0def username(self):# 随机判断标准task=random.randint(0,10)# 结果列表results_all=[]# 字母结果results_letters=[]# 数字结果results_digital=[]try:    if (task>0 and task<3):self.u_1=self.u_1+1while len(results_letters)<4:results_letters.append(random.choice(zimu_xx))results_all.append("".join(results_letters))while True:if random.choice(number)<1500:results_all.append(random.choice(number))breakelse:continuereturn results_all[0].encode('utf-8')+str(results_all[1])elif (task>3 and task<6):self.u_2=self.u_2+1while len(results_letters)<5:results_letters.append(random.choice(zimu_xx))results_all.append("".join(results_letters))while True:if random.choice(number)>1500 and random.choice(number)<3000:results_all.append(random.choice(number))breakelse:continuereturn results_all[0].encode('utf-8')+str(results_all[1])elif (task>6 and task<9):self.u_3=self.u_3+1while len(results_letters)<6:results_letters.append(random.choice(zimu_xx))results_all.append("".join(results_letters))while True:if random.choice(number)>3000 and random.choice(number)<6000:results_all.append(random.choice(number))breakelse:continuereturn results_all[0].encode('utf-8')+str(results_all[1])else:self.u_4=self.u_4+1temp=[]while len(results_letters)<3:results_letters.append(random.choice(zimu_xx))results_all.append("".join(results_letters))while True:if random.choice(number)>6000 and random.choice(number)<8000:results_all.append(random.choice(number))breakelse:continuewhile len(temp)<3:temp.append(random.choice(results_letters))results_all.append("".join(temp))return results_all[0]+str(results_all[1])+results_all[2]except IndexError,e:passdef passwd(self):# 随机判断标准task=random.randint(0,15)# 结果列表results_all=[]# 字母结果(大写)results_letters_big=[]# 字母结果(小写)results_letters_small=[]# 数字结果results_digital=[]# 特殊字符results_special_characters=[]try:    if (task>0 and task<3):self.p_1=self.p_1+1while len(results_letters_big)<3:results_letters_big.append(random.choice(zimu_dx))while len(results_letters_small)<3:results_letters_small.append(random.choice(zimu_xx))results_all.append("".join(results_letters_big))results_all.append("".join(results_letters_small))while len(results_special_characters)<3:results_special_characters.append(random.choice(teshu))results_all.append("".join(results_special_characters))while True:test_num=[i for i in range(200,800)]if random.choice(test_num)>300 and random.choice(test_num)<600:results_all.append(random.choice(test_num))breakelse:continuereturn results_all[0]+results_all[1]+results_all[2]+str(results_all[3])elif (task>3 and task<4):self.p_2=self.p_2+1while len(results_letters_big)<4:results_letters_big.append(random.choice(zimu_dx))while len(results_letters_small)<3:results_letters_small.append(random.choice(zimu_xx))results_all.append("".join(results_letters_big))results_all.append("".join(results_letters_small))while len(results_special_characters)<4:results_special_characters.append(random.choice(teshu))results_all.append("".join(results_special_characters))while True:test_num=[i for i in range(500,1400)]if random.choice(test_num)>600 and random.choice(test_num)<1200:results_all.append(random.choice(test_num))breakelse:continuereturn results_all[0]+results_all[2]+results_all[1]+str(results_all[3])elif (task>4 and task<9):self.p_3=self.p_3+1while len(results_letters_big)<3:results_letters_big.append(random.choice(zimu_dx))while len(results_letters_small)<4:results_letters_small.append(random.choice(zimu_xx))results_all.append("".join(results_letters_big))results_all.append("".join(results_letters_small))while True:test_num=[i for i in range(1100,2600)]if random.choice(test_num)>1200 and random.choice(test_num)<2400:results_all.append(random.choice(test_num))breakelse:continuereturn results_all[1]+results_all[0]+str(results_all[2])elif (task>9 and task<12):self.p_4=self.p_4+1while len(results_letters_big)<3:results_letters_big.append(random.choice(zimu_dx))while len(results_letters_small)<4:results_letters_small.append(random.choice(zimu_xx))results_all.append("".join(results_letters_big))results_all.append("".join(results_letters_small))while True:test_num=[i for i in range(2300,5000)]if random.choice(test_num)>2400 and random.choice(test_num)<5000:results_all.append(random.choice(test_num))breakelse:continuereturn str(results_all[2])+results_all[1]+results_all[0]elif (task>12 and task<15):self.p_5=self.p_5+1while len(results_letters_big)<4:results_letters_big.append(random.choice(zimu_dx))while len(results_letters_small)<5:results_letters_small.append(random.choice(zimu_xx))results_all.append("".join(results_letters_big))results_all.append("".join(results_letters_small))while True:test_num=[i for i in range(4900,10000)]if random.choice(test_num)>5000 and random.choice(test_num)<10000:results_all.append(random.choice(test_num))breakelse:continuereturn str(results_all[2])+results_all[0]+results_all[1]else:self.p_6=self.p_6+1while len(results_letters_big)<5:results_letters_big.append(random.choice(zimu_dx))while len(results_letters_small)<4:results_letters_small.append(random.choice(zimu_xx))results_all.append("".join(results_letters_big))results_all.append("".join(results_letters_small))return results_all[0]+results_all[1]except IndexError,e:passdef count_data(self):print "生成100组账号密码的概率比例:"print "========账号类比率======="print "方案1: %s%% 方案2: %s%% 方案3: %s%% 方案4: %s%%" % (self.u_1,self.u_2,self.u_3,self.u_4)print "========密码类比率======="print "方案1: %s%% 方案2: %s%% 方案3: %s%% 方案4: %s%% 方案5: %s%% 方案6: %s%%" % (self.p_1,self.p_2,self.p_3,self.p_4,self.p_5,self.p_6)if __name__=='__main__':t=create_data()for i in range(0,100):print "生成账号: %s 密码: %s" % (t.username(),t.passwd())t.count_data()

转载于:https://www.cnblogs.com/xiaoCon/p/3891996.html

Python 生成账号密码算法相关推荐

  1. python实现账号密码登录

    用Python实现账号密码登录 准备 无需数据库 程序简介 运行这个程序,注册后哪怕重新运行,注册的账号依然存在,我们可以把账号密码分别保存到2个txt中,使用的时候再读取txt 为了安全起见,我们可 ...

  2. python验证账号密码登录

    python小程序:一段利用循环实现的验证账号密码登录的程序 init_usrname = input("请输入初始用户名:") init_password = input(&qu ...

  3. python 带账号密码的爬取

    某些网页需要输入账号密码才能进入到特定的页面,比如cdsn登陆之后才能进入自己的博客管理页面. 博客页面url:https://mp.csdn.net/postlist 登陆的方式有几种,如下具体描述 ...

  4. Python生成强密码字典文件

    本文要点在于演示如何使用正则表达式验证密码强度,以及如何生成大量字符的排列.由于下面代码生成的字典过于庞大,所以并没有很直接的应用场景,可对生成的强密码再次进行过滤,仅保留可能性较大的密码,这样可以减 ...

  5. python模拟账号密码登录_使用python模拟用户登录

    说明 模拟用户登陆 1.判断用户名是否输入超过3 输入超过三次后给出提示退出 2.输入用户名和密码判断是否输入正确 输入正确用户名或密码 提示登录成功 输入错误用户名或密码 提示用户名或密码错误,请重 ...

  6. 用Python编写账号密码登录程序

    for i in range(3):name = int(input("请输入用户名:"))password = int(input("请输入密码:"))if ...

  7. python密码登录程序三次_Python实现账号密码输错三次即锁定功能简单示例

    本文实例讲述了Python实现账号密码输错三次即锁定功能.分享给大家供大家参考,具体如下: 初学Python-1 #实现账号输错三次即锁定 user = "hubery" pass ...

  8. Python 02 Selenium 账号密码登录CSDN

    Python selenium 账号密码登录CSDN from time import sleep from selenium import webdriverdef login():url = 'h ...

  9. Python生成随机微软邮箱和密码

    效果如下: 代码如下: 可以自己修改函数,循环那段可以改生成的数量 import random import string# 生成随机密码的字符串,字符串中只包括字母和数字 # 可以指定字符串的位数# ...

最新文章

  1. RISC-V与DSA计算机架构
  2. C语言中的位运算符主要有哪些?逻辑右移与算术右移的区别?
  3. jsp内置对象【02】四种内置对象【02】session、application
  4. ruby 安装和管理
  5. Linux搭建私有Git服务器以及ssh免密登陆配置
  6. 一、Oracle介绍
  7. linux里source、. 、sh、bash、./有什么区别
  8. 极简潮流!最新海报欣赏给你设计灵感
  9. 【ProCAST】铸件定向凝固仿真流程学习总结
  10. vim 格式化 json 命令
  11. html中加入标题居中,在html标题标记中居中的div元素
  12. Android activity主题设置为dialog 样式
  13. SpringBoot 实战:加载和读取资源文件
  14. 三菱FX系列PLC以太网连接力控ForceControl
  15. Linux驱动-platform设备驱动
  16. 小程序拼团商城系统开发
  17. 嵌入式心得 (转载)
  18. Java实现 洛谷 P1159 排行榜
  19. 如何进行文档翻译?文档翻译的软件有哪些?
  20. 学人工智能电脑主机八大件配置选择指南

热门文章

  1. 【安卓开发 】Android初级开发(网络操作)
  2. 最大公约数简便算法_求最大公约数的4种算法
  3. python3.70_Python3 基本数据类型
  4. 永恒之塔修改服务器,[搬运工]永恒之塔单机版7.8 德国最新服务端
  5. android listview asynctask,Android精通之AsyncTask与ListView讲解
  6. python openpyxl模块追加数据_python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据...
  7. 案例 github_github 项目搜索技巧-让你更高效精准地搜索项目
  8. pat 乙级 1014 福尔摩斯的约会 (C++)
  9. 【渝粤教育】电大中专电商运营实操 (1)作业 题库
  10. python flask 上传下载 api_python – 使用Flask上传和下载文件