python实例31[生成随即的密码]
代码:
import random
import string
import time # strong.high = 3 #random for the whole passwd
#storng.middle = 2 # include one special sign
#strong.ow = 1 # just include characters or digits def mkpassByRandom(size=8, strong = 2):
chars = []
chars.extend([i for i in string.ascii_letters])
chars.extend([i for i in string.digits])
chars.extend([i for i in '\'"!@#$%&*()-_=+[{}]~^,<.>;:/?'])
passwd = ''
strong = int(strong)
if (strong <= 1) :
for i in range(size):
passwd += chars[random.randint(0,len(string.ascii_letters + string.digits) - 1)]
random.seed = int(time.time())
elif(strong == 2):
newpasswd = ''
for i in range(size - 1):
newpasswd +=chars[random.randint(0,len(string.ascii_letters + string.digits) - 1)]
random.seed = int(time.time())
newpasswd += chars[random.randint(len(string.ascii_letters + string.digits) , len(chars) - 1)]
ll = [ch for ch in newpasswd]
random.shuffle(ll)
for l in ll:
passwd += l
elif(strong >=3):
for i in range(size):
passwd += chars[random.randint(0, len(chars) - 1)]
random.seed = int(time.time())
random.shuffle(chars)
else:
pass
return passwd
def rule1(ch):
rulesdict = { 'o': 0, 'i':'!', 'b':8, 'p':'P', 'm':'M'}
newch = ch
if ch in rulesdict.keys():
newch = rulesdict[ch]
return newch def rule2(ch):
if(ch.isupper()):
return ch.lower()
elif(ch.islower()):
return ch.upper()
return ch def mkpassByRules(passwd, *rules ):
if (passwd == "" or len(rules) == 0):
return passwd
newpasswd = ""
for c in passwd:
r = random.randint(0, len(rules) - 1)
ch = (rules[r])(c)
newpasswd += str(ch) return newpasswd def mkpass(size = 8, strong = 2, initpasswd = ""):
if ( not initpasswd == ""):
return mkpassByRules(initpasswd, rule1, rule2)
else:
return mkpassByRandom(size,strong) print( mkpass(initpasswd = "Password123"))
print( mkpass(strong = 1))
print( mkpass(strong = 2))
print( mkpass(strong = 3))
参考:http://code.activestate.com/recipes/577339-random-passwords/
python实例31[生成随即的密码]的更多相关文章
- Python实例31[批量对目录下文件重命名]
经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Uni ...
- python实例31[列出目录下所有的文件到txt]
代码: (使用os.listdir) import os def ListFilesToTxt(dir,file,wildcard,recursion): exts = wildcard.sp ...
- (转)Python实例手册
原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...
- 转载 python实例手册
python实例手册 #encoding:utf8# 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请 ...
- 【转载】python实例手册
今天写爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册 作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:ut ...
- Python实例手册
在电脑中突然发现一个这么好的资料,雪松大神制作,不敢独享,特与大家共享.连他的广告也一并复制了吧! python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 ...
- wordpress密码生成与登录密码验证
一.研究wordpress时wordpess的密码密码生成与登录密码验证方式很重要 WordPress密码已成为整合的首要目标,如何征服整合,就得了解WordPress密码算法. WordPress系 ...
- 奇异值分解原理及Python实例
奇异值分解 SVD(Singular Value Decomposition)是一种重要的矩阵分解方法,可以看做是特征分解在任意矩阵上的推广,SVD是在机器学习领域广泛应用的算法. 特征值和特征向量 ...
- python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (二)
Hey! 如果你还没有看这篇的上文的话,可以去稍稍瞅一眼,会帮助加速理解这一篇里面涉及到的递归结构哦!(上一篇点这里:<python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (一)> ...
随机推荐
- 域名查询是否注册的demo
import json import multiprocessing import threading import requests import xmltodict # 万网查询 def chec ...
- java:Spring框架1(基本配置,简单基础代码模拟实现,spring注入(DI))
1.基本配置: 步骤一:新建项目并添加spring依赖的jar文件和commons-logging.xx.jar: 步骤二:编写实体类,DAO及其实现类,Service及其实现类; 步骤三:在src下 ...
- 【FICO系列】SAP FICO折旧记账时出现错误:没有找到与所做选择一致的数据
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FICO折旧记账时出现错 ...
- jmeter对websocket进行压测
参考文档:https://blog.csdn.net/weixin_39430584/article/details/81508451 ①脚本调通 ②添加并发量和持续时间 ③看服务器指标
- python 并发编程 io模型 目录
python 并发编程 IO模型介绍 python 并发编程 socket 服务端 客户端 阻塞io行为 python 并发编程 阻塞IO模型 python 并发编程 非阻塞IO模型 python 并 ...
- [转帖] Linux 下面 perl 命令的简介
https://www.jb51.net/article/123326.htm 感觉挺好的 改天需要仔细学习一下. 前言 本文主要给大家介绍了关于Perl单行命令的相关内容,分享出来供大家参考学习,下 ...
- [转帖]目标管理的S.M.A.R.T.理念
目标管理的S.M.A.R.T.理念 https://blog.csdn.net/gehantao/article/details/1593510 目标管理(MBO)是一种管理战略,它使用的是S ...
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- Nginx_Ubuntu
一. 基本步骤 1.1 环境准备 开始前,请确认gcc g++开发类库是否装好,默认已经安装. 注: 等待linux下载更新功能准备好了 重启系统 在执行下载安装命令,如执行命令没有问题可以继续往下走 ...
- 修建泳池&最大子矩阵
[题目描述] 夏天到了,学校打算在教学楼后面的空地上挖一个泳池供大家使用. 经过实地勘察,这块土地可以划分成N 行M 列的方格,有的方格是树,有的方格是空地.现在要找一块最大的矩形空地修建泳池,请问泳 ...