2013-08-23 53 views
0

我一直在嘗試創建一個密碼創建者來爲評估創建一個密碼,並且需要的其中一件事是如果密碼中至少沒有2個數字將打印一個錯誤,詢問至少有兩個數字的密碼。我不知道該怎麼做,我只是想知道你是否可以給我一點關於如何在代碼中做到這一點的暗示。我正在嘗試創建一個密碼創建者

在此先感謝

+3

你的頭銜說你想要一個密碼創建者,但問題是你想驗證一個密碼。哪一個?另外,你到目前爲止嘗試過什麼,你有什麼問題?一個好的第一步可能是想出一個[函數簽名](https://en.wikipedia.org/wiki/Signature_%28computer_science%29)。 –

+3

你需要在這裏發佈一些東西之前先嚐試一些東西。查閱http://docs.python.org/2/library/random.html ... – korylprince

回答

2

您可以嘗試使用regular expressions

import re 

passw = 'hell1owo2rld' 
if re.match('.*[0-9].*[0-9].*', passw): 
    print 'Password is ok' 
else 
    print 'Please use at least two numbers' 
0

可以使用字符串方法,列表理解這樣做,len

if len([x for x in your_password_variable if x.isdigit()]) >= 2: 
    print "OK" 
else: 
    print "You need at least 2 numbers" 
0

如果問題是確實要創建一個新的密碼,我解釋怎麼做,但沒有代碼:

如果您想要安全密碼,請使用random.SystemRandom()

首先從允許字符集合中創建N個字符,其中N是您的密碼長度。然後檢查是否至少有2位數字。如果少於2個數字字符,則刪除1或2個非數字字符並添加隨機數字,以便至少有2個數字。最後使用shuffle()來排列密碼。這樣你的密碼就有可能達到最大熵。

相關問題