2016-11-15 71 views
-1

我的問題是創建一個包含一個策略密碼:的Java密碼策略驗證

  • 大寫字母 -
  • 小寫字母 -
  • 數字 - DONE
  • 特殊charakters - 完成
  • 不允許使用字母/數字序列,例如QWERTY鍵盤,12345,qazws,poiuy,09876,ABCDE等 - 失敗

任何人都可以請澄清,如果這可以通過正則表達式來完成還是更通過Java庫,例如實施vtpassword。如果可能的話,請給我一個示例代碼?

+2

「字母/數字序列」你在這裏有一些非常隨意的序列,因爲在某些鍵盤佈局上除了它們相鄰之外沒有其他模式。你必須枚舉所有的非法序列並檢查它們。 –

+0

這是工作場所密碼驗證或學校密碼驗證?我可以提供關於後者的一些見解,但前者的某些內容應該通過更嚴格的事情來完成。 – Compass

+0

@AndyTurner是的,只是在某些鍵附近的序列。 – atezor

回答

0

前段時間我解決了我的問題,我想分享我的代碼:序列不能包含機械密碼的前5個字符。

public boolean specialChar(String password){ 

    String sequences = "[email protected]#$%^&*()(*&^%$#@!"; 
    boolean specbool = false; 

    Pattern pp = Pattern.compile("\\p{Punct}{5}+"); 
    Matcher mm = pp.matcher(password); 
    if (mm.find()){ 
     String q = mm.group(); 
     specbool = sequences.contains(q); 
    } 

    return specbool; 
}