20190110 生成密碼以及簡易密碼強度檢查

2022-07-20 08:57:13 字數 2436 閱讀 6082

1.生成9位字母的密碼

使用random.choice函式,此函式需要乙個序列,因此給定乙個序列包含a-z,a-z

#

step1:生成序列

import

random

s1=''

for i in range(97,123):

s1+=chr(i)+chr(i-32)

#step2: 生成密碼

password=''

for i in range(9):

password+=random.choice(s1)#

從s1序列中隨機選取乙個元素

print('

9位數的密碼為:

',password)

2:生成9位數字和字母的密碼,密碼可能隨機出現數字和字母

此題在上一題的基礎上先生成乙個序列包含所有字母和數字,然後使用random.choice()函式

import

random

s1=''

for i in range(97,123):

s1+=chr(i)+chr(i-32)

s1+='

0123456789

'print

(s1)

#生成包含小寫字母和數字的序列

#另外乙個寫法

import

string

s1 = string.ascii_letters+string.digits

password=''

for i in range(9):

password+=random.choice(s1)

print('

隨機密碼為:

',password)

3.檢測密碼強度

c1 : 長度》=8

c2: 包含數字和字母

c3: 其他可見的特殊字元

強密碼條件:滿足c1,c2,c3

中密碼條件: 只滿足任一2個條件

弱密碼條件:只滿足任一1個或0個條件

思路:先將c1,c2,c3三個條件寫成函式,以ture和false返回,true為滿足,false為不滿足

step1.寫出3個條件函式

def

check_len(password):

if len(password)>=8:

return

true

#長度大於8則為true

else

:

return

false

defcheck_letter_type(password):

import

string

result =false

for i in

string.ascii_letters:

#大小寫字母

if i in

password:

#密碼中包含字母

for j in

string.digits:#數字

if j in

password:

#密碼中包含數字

result =true

return

result

defcheck_punctuation(password):

import

string

result =false

for i in

string.punctuation:

if i in

password:

#密碼中包含特殊字元

result =true

return result

check_len檢查密碼長度,check_letter_type檢查密碼中是否包含字母和數字,check_punctuation檢查密碼中是否包含特殊字元

step2:檢查密碼滿足幾個條件

def

pass_verify(password):

count =0

#使用count來記錄password滿足幾個條件

ifcheck_len(password):

count +=1

ifcheck_letter_type(password):

count +=1

ifcheck_punctuation(password):

count +=1

if count==3:

print("

強密碼"

)

elif count ==2:

print('

中密碼'

)

else

:

print('

弱密碼'

)pass_verify(password)

Python3生成密碼

使用python3實現簡單的密碼生成功能,隨機且隨意。這裡只是乙個簡單的例子,有必要的話可以深入研究一下。time 2019 9 12 18 24 author 統哥哥 file password generato.py software pycharm import string import r...

22 生成括號

n n組括號,括號字串長度為2n2n 字串中的每個字元有兩種選擇可能,或 故有22n 2 22 n種可能。分析 1 我們定義兩個變數left和right分別表示剩餘左右括號的個數,如果在某次遞迴時,左括號的個數大於右括號的個數,說明此時生成的字串中右括號的個數大於左括號的個數,即會出現 或者 這樣的...

數學 3 生成函式

生成函式是乙個比較複雜且廣泛的數學知識點,應當重點學習 首先給出一些運算公式,方便以後學習使用 texttt begin alpha f z beta g z sum alpha f n beta g n z n z mg z sum ng z n m geq0 fracz sum g z n m ...