python 3 - 寫一個自動生成密碼文件的程序


1、你輸入幾,文件里面就給你產生多少條密碼
2、密碼必須包括,大寫字母、小寫字母、數字、特殊字符
3、密碼不能重復
4、密碼都是隨機產生的
5、密碼長度6-11

 

import string,random
upperStr = string.ascii_uppercase
lowerStr = string.ascii_lowercase
digitStr = string.digits
specialStr = string.punctuation
allStr = upperStr+lowerStr+digitStr+specialStr #產生密碼所需要的字符集
f = open('pwdFile.txt','w')
# 輸入要產生密碼的次數:
Num = int(input("please input the times:"))
for i in range(Num):
    pwdLen = random.randint(6,11)
    #print(pwdLen) # 隨機生成密碼的長度
    # 密碼必須包含的四個字符:大寫字母,小寫字母,數字,特殊字符
   
pwd1 = random.choice(upperStr) + random.choice(digitStr) + random.choice(lowerStr) + random.choice(specialStr)
    pwdRan = random.sample(allStr,pwdLen-4) #除去4個字符外,隨機從字符集中取出剩下所需要的字符
   
pwd2 = "".join(pwdRan)#  並將該List轉化為字符串
   
pwd = pwd1+pwd2 # 最終生成的隨機密碼
   
f.write(pwd+'\n') #將密碼寫入文件中
f.close()

 

生成結果:

M0h[6UZO
K2m~9I(+
P9g/#<Yn
O5u&")9@
E6f;hVL
D7b>Uc@W$Y6

 

總結:

1. 

pwdRan = random.sample(allStr,pwdLen-4) #除去4個字符外,隨機從字符集中取出剩下所需要的字符

random.sample()  生成的是一個List,需要將該List轉換為字符串,然后才可以和第一部分產生的密碼拼接. 

2. 

pwd2 = "".join(pwdRan)#  並將該List轉化為字符串

使用join方法將list 轉化為string類型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM