1. 程式人生 > >一個正則表示式驗證密碼強度

一個正則表示式驗證密碼強度

  1. privateint CheckSecurity(string pwd)  
  2. {  
  3. return Regex.Replace(pwd, "^(?:([a-z])|([A-Z])|([0-9])|(.)){6,}|(.)+$""$1$2$3$4$5").Length;  
  4. }  

在網上看過很多種驗證密碼強度的方法,但無一不長篇大論。

今天無意發現一種很牛X的方法,利用正則,且只有一句話就搞定了。

大概介紹一下:

密碼字元包括:小寫字母、大寫字母、數字、符號等;

這個正則會得到五個捕獲組,前四個捕獲組會告訴我們這個字串包含有多少種組合(返回多少個匹配代表多少種組合)

如果這個字串小於6位的話,則會得到第五個捕獲組,長度為1(即強度為1),如果沒有輸入,就連捕獲組5都不會得到(強度為0)

雖然是一句話的函式,但卻考了好多個正則的知識點:範圍、包含、長度、捕獲、替換。膜拜一下!

不過作者貌似說還有待改進,我想,應該是特殊字元,例如全形字元不能正確識別的問題吧。正常使用不受影響。