码迷,mamicode.com
首页 > 编程语言 > 详细

python实例31[生成随即的密码]

时间:2014-07-07 14:28:38      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:blog   http   strong   cti   for   代码   

 

代码:

bubuko.com,布布扣

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))


 
bubuko.com,布布扣

 

 

 

参考:http://code.activestate.com/recipes/577339-random-passwords/

 

python实例31[生成随即的密码],布布扣,bubuko.com

python实例31[生成随即的密码]

标签:blog   http   strong   cti   for   代码   

原文地址:http://www.cnblogs.com/L-H-R-X-hehe/p/3815357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!