1. 程式人生 > >使用random和string模組實現生成指定規則密碼

使用random和string模組實現生成指定規則密碼

需求:當我使用自動化密碼更改工具去更改伺服器密碼的時候,隨機產生的密碼字串不一定符合我的密碼規則,會導致更改失敗。如規則為:至少包含3個數字,3個小寫字母,1個大寫字母,長度不小於8位。實現程式碼如下

def get_passwd(length=20):
    passwds = []
    while True:
        passwd = set(random.sample(string.ascii_letters + string.digits, length))
        if len(passwd.intersection(string.ascii_uppercase)) >= 1 and len(passwd.intersection(string.ascii_lowercase)) >= 3 and len(passwd.intersection(string.digits)) >= 3:
            passwds.append(''.join(passwd))
            break
    return passwds[0]