我試圖通過客戶端(JavaScript)和服務器端(ASP.NET C#)上的正則表達式來實現密碼複雜度的強制實施。密碼複雜度的正則表達式
的規則如下:
- 必須是8-40個字符
- 必須至少包含一個數字
- 必須包含至少一個小寫字母
- 必須包含至少一個大寫字母
- 必須包含至少一個特殊字符
您可以幫助構建驗證上述所需的正則表達式嗎?
我試圖通過客戶端(JavaScript)和服務器端(ASP.NET C#)上的正則表達式來實現密碼複雜度的強制實施。密碼複雜度的正則表達式
的規則如下:
您可以幫助構建驗證上述所需的正則表達式嗎?
這裏試試這個正則表達式:
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,40})
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[A-Z]) # must contains one uppercase characters
(?=.*[@#$%]) # must contains one special symbols in the list "@#$%"
. # match anything with previous condition checking
{8,40} # length at least 8 characters and maximum of 40
)
那麼我只是說,只有一個正則表達式是不可能的。沒想到前瞻。好一個。 –
您需要添加錨以確保不超過40個字符。 –
你的答案肯定適用於我所要求的,我感謝你的幫助。我最終改變了我的代碼,只是檢查了一個長長的需求,因爲我意識到所有這些約束並不一定使它更安全。 –
[相關XKCD(http://xkcd.com/936/)。 – Sam
不要試圖將它作爲一個正則表達式來完成。看到我的答案在這裏:http://stackoverflow.com/a/18642031/8454 –
不要嘗試它。只有密碼長度很重要。讓它> = 12,你很好。 – Rudie