python31实例[生成随即的密码]
时间:2011-01-26
来源:互联网
code
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))
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))
作者: oraclewm 发布时间: 2011-01-26
论坛和网页上的那些都是这样的?
作者: unixlinuxsys 发布时间: 2011-01-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28