請教密碼強度正規表示式,寫乙個java正規表示式,判斷輸入的密碼強度,是數字弱,是字母較弱,數字加字母強,用 s寫

2022-01-07 05:31:09 字數 2255 閱讀 9622

1樓:愛染年

密碼強度指乙個密碼被非認證的使用者或計算機破譯的難度。 密碼強度通常用「弱」或「強」來形 容。「弱」和「強」是相對的,不同的密碼系統對於密碼強度有不同的要求。

密碼的破譯與系統允許客戶嘗試不同密碼的次數、是否熟悉密碼主人等因素相關。然而,即使再強的密碼也有可能被偷取、破譯或洩漏,在使用者設定密碼時,盡可能的將密碼設定的越複雜、位數越長、經常更換此型別的密碼,從而才能讓密碼強度盡可能達到最高。

條件1: 密碼只能是數字或大小寫字母或下劃線的組合

條件2: 如果密碼包含數字和字母的組合即為強.

例如 : 123abc 為強密碼

123abc_也是強密碼

123456 為弱密碼

123456_為弱密碼

abcdef 為弱密碼

abcdef_ 為弱密碼

首先,畫乙個dfa:

其中,s是開始狀態,a代表包含數字但不包含字母的狀態,b代表包含字母但不包含數字的狀態,c代表既包含字母又包含數字的狀態,o代表包含非法字元的陷阱狀態。如果狀態機停在s、a、b狀態,則為弱密碼。如果狀態機停在c狀態,則為強密碼。

如果狀態機停在o狀態,則為非法密碼。然後,把它轉化成正則就可以啦。

下面這個正則要求密碼長度最少12位,包含至少1個特殊字元,2個數字,2個大寫字母和一些小寫字母。

(?=^.$)(?

=(?:.*?\d))(?

=.*[a-z])(?=(?:.

*?[a-z]))(?=(?:.

*?[!@#$%*()_+^&})(?!.

*\s)[0-9a-za-z!@#$%*()_+^&]*$

分解:(?=^.$) -- 密碼長度12-25,自己改變量字可以調節

(?=(?:.*?[!@#$%*()_+^&}) -- 至少乙個特殊字母,fyi

(?=(?:.*?\d)) -- 至少2個數字,fyi

(?=.*[a-z]) -- a-z的小寫字母

(?=(?:.*?[a-z])) -- 至少2個大寫字母,fyi

2樓:

兩種:第一,要求密碼至少包含 大寫字母,小字字母,數字,特殊符號中的兩種:

reg=/^(?![0-9]+$)(?![a-z]+$)(?![a-z]+$)(?!([^(0-9a-za-z)])+$).$/;

第二:要求密碼必須包含字母,數字和特殊符號:

reg=/^(?=.*[a-za-z])(?=.*[1-9])(?=.*[\w]).$/;

3樓:匿名使用者

var strongregex = new regexp("^(?=.)(?

=.*[a-z])(?=.

*[a-z])(?=.*[0-9])(?

=.*\\w).*$", "g");

表示至少8個字元,而且必須同時有大寫字母,小寫字母,數字,除了字母數字下劃線以外的字元。四種字元必須都有,缺一不可。

比如「aabb2?eee"就符合要求,而「aabb2_eee"就不符合要求

var mediumregex = new regexp("^(?=.)(((?

=.*[a-z])(?=.

*[a-z]))|((?=.*[a-z])(?

=.*[0-9]))|((?=.

*[a-z])(?=.*[0-9]))).

*$", "g");

表示至少7個字元,必須同時含有大寫字母和小寫字母;或者同時有大寫字母和小寫字母;或者同時有小寫字母和數字。以上三種情況滿足一種即符合要求

寫乙個j**a正規表示式,判斷輸入的密碼強度,是數字弱,是字母較弱,數字加字母強,用\s寫

4樓:清明月心

scanner input=new scanner(system.in);

system.out.print("請輸入密碼:");

string pwd=input.next();

string p="",p2="";

pattern pa1=pattern.compile("\\d+");

pattern pa2=pattern.compile("\\w+");

matcher m1=pa1.matcher(pwd);

matcher m2=pa2.matcher(pwd);

if(m1.find())else if(m2.find())

if(p.length()==pwd.length())else if(p2.length()==pwd.length())else

求一正規表示式,匹配pp之間的內容

或 p 你取第一組中的內容,就可以取得了 正規表示式提取html中的與之間的內容,前面裡面可能還有屬性 var str 核心提示 var pobj document.getelementbyid testp var pattern new regexp p i alert str.match pat...

哪位大神能幫我讀一下這段正規表示式php中的我

前面都是照著匹配 主要是後面這一塊 css js flash a za z0 9 其中 css js flash 表示匹配css或js或flash a za z0 9 表示匹配中的任意乙個字元,也就是26個英文本母 不分大小寫 和0到9以及正斜線中的任意乙個,後面的 表示部分至少重複一次。整體來說就...

正規表示式中兩個不同的匹配條件怎麼在一條語句裡執行

4終 1 開啟sublime text3編輯器,新建一個py檔案。import re,也就是引入regular expression正規表示式庫。2 test re.compile r print test.findall 666 888 如果要匹配星號,只需要在前面加上反斜槓。3 如果不加上反斜槓...