成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

密碼強(qiáng)度的正則表達(dá)式(JavaScript)總結(jié)

Carl / 1679人閱讀

摘要:簡言本文給出了兩個(gè)密碼強(qiáng)度的正則表達(dá)式方案,一個(gè)簡單,一個(gè)更復(fù)雜和安全。要寫出正確的正則表達(dá)式,先要定義表達(dá)式規(guī)則。重復(fù)在正則表達(dá)式中用來表示元素重復(fù)出現(xiàn)的次數(shù)。你可以根據(jù)項(xiàng)目需要,自己調(diào)整上述正則表達(dá)式。

簡言

本文給出了兩個(gè)密碼強(qiáng)度的正則表達(dá)式方案,一個(gè)簡單,一個(gè)更復(fù)雜和安全。并分別給出了兩個(gè)方案的解析和測(cè)試程序。一般大家可以根據(jù)自己的項(xiàng)目的實(shí)際需要,自行定義自己的密碼正則約定。

前言

用戶注冊(cè)時(shí),都會(huì)用到密碼正則校驗(yàn)。要寫出正確的正則表達(dá)式,先要定義表達(dá)式規(guī)則。

方案1 (簡單)

假設(shè)密碼驗(yàn)證做如下規(guī)則定義:

最短6位,最長16位 {6,16}

可以包含小寫大母 [a-z] 和大寫字母 [A-Z]

可以包含數(shù)字 [0-9]

可以包含下劃線 [ _ ] 和減號(hào) [ - ]

根據(jù)以上規(guī)則,很容易給出正則字面量定義如下:

var pattern = /^[w_-]{6,16}$/;
方案1分析 字面量 / /

正則表達(dá)式的字面量定義為包含在一對(duì)斜杠(/)之間的字符,例如:

var pattern = /s$/;

上述字面量匹配所有以字母“s”結(jié)尾的字符串。

字符類 [ ]

將字符放進(jìn)方括號(hào)內(nèi)就組成了字符類。一個(gè)字符類可以匹配它所包含的任意字符。因此,正則表達(dá)式/[abc]/就和字母“a”,“b”,“c”中的任意一個(gè)都匹配。

字符類可以使用連字符來表示字符范圍。要匹配拉丁小寫字母可以使用/[a-z]/

字符類 w

字符類 w 匹配任何ASCII字符組成的單詞,等價(jià)于[a-zA-Z0-9]。

[w_-]表示匹配任意的拉丁大小寫字母,數(shù)字再加上下劃線和減號(hào)。

重復(fù) {}

在正則表達(dá)式中用{ }來表示元素重復(fù)出現(xiàn)的次數(shù)。

{n,m} 匹配前一項(xiàng)至少n次,但不能超過m次

{n,} 匹配前一項(xiàng)n次或更多次

{n} 匹配前一項(xiàng)n次

[w_-]{6,16} 表示匹配任意的拉丁大小寫字母,數(shù)字再加上下劃線和減號(hào)出現(xiàn)最少6次,最多16次。

匹配位置

^ 匹配字符串的開頭,在多行檢索中,匹配一行的開頭

$ 匹配字符串的結(jié)尾,在多行檢索中,匹配一行的結(jié)尾

/^w/ 匹配以大小寫字母或數(shù)字開頭的字符串。

方案1測(cè)試

給出測(cè)試結(jié)果如下:

var pattern = /^[w_-]{6,16}$/;
pattern.test("123456") = true;
pattern.test("-ifat33") = true;
pattern.test("42du") = false;
pattern.test("du42du42du42du421") = false;
pattern.test("42du42@") = false;

查看源碼

根據(jù)測(cè)試結(jié)果可以看出,方案1只是對(duì)密碼做了簡單的限定,不能保證密碼的強(qiáng)度和帳號(hào)安全。

方案2 (安全)

假設(shè)密碼驗(yàn)證做如下規(guī)則定義:

最短6位,最長16位 {6,16}

必須包含1個(gè)數(shù)字

必須包含2個(gè)小寫字母

必須包含2個(gè)大寫字母

必須包含1個(gè)特殊字符

根據(jù)以上規(guī)則,很容易給出正則字面量定義如下:

var pattern = /^.*(?=.{6,16})(?=.*d)(?=.*[A-Z]{2,})(?=.*[a-z]{2,})(?=.*[!@#$%^&*?()]).*$/;
方案2分析 字符類 .

字符類 . 表示除換行符和其他Unicode行終止符之外的任意字符。

正向先行斷言 (?= )

在符號(hào)“(?=” 和 “)” 之間加入一個(gè)表達(dá)式,它就是一個(gè)先行斷言,用以說明圓括號(hào)內(nèi)的表達(dá)式必須正確匹配。比如:/Java(?=:)/ 只能匹配Java且后面有冒號(hào)的。

(?=.*[!@#$%^&*?()])

該先行斷言表示,必須包括一個(gè)特殊字符。上述表達(dá)式中的10個(gè)特殊字符為鍵盤1,2...0的上檔鍵字符,也可以添加別的特殊字符。注意:如果添加字符是正則表達(dá)式中具有特殊含義的,需要在符號(hào)前加反斜線()轉(zhuǎn)義。

方案2測(cè)試

給出測(cè)試結(jié)果如下:

var pattern = /^.*(?=.{6,16})(?=.*d)(?=.*[A-Z]{2,})(?=.*[a-z]{2,})(?=.*[!@#$%^&*?()]).*$/;
pattern.test("du42DU!") = true;
pattern.test("duDUd!") = false;
pattern.test("42dud!") = false;
pattern.test("42DUD!") = false;
pattern.test("42duDU") = false;
pattern.test("42duU(") = false;
pattern.test("42dUU!") = false;

查看源碼

從以上測(cè)試可以看出,密碼足夠強(qiáng)壯和安全。你可以根據(jù)項(xiàng)目需要,自己調(diào)整上述正則表達(dá)式。

原文鏈接

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93286.html

相關(guān)文章

  • 【收藏】15個(gè)常用javaScript正則達(dá)式

    摘要:用戶名正則用戶名正則,到位字母,數(shù)字,下劃線,減號(hào)輸出密碼強(qiáng)度正則密碼強(qiáng)度正則,最少位,包括至少個(gè)大寫字母,個(gè)小寫字母,個(gè)數(shù)字,個(gè)特殊字符輸出整數(shù)正則正整數(shù)正則負(fù)整數(shù)正則整數(shù)正則輸出輸出輸出數(shù)字正則可以是整數(shù)也可以是浮點(diǎn) 1 用戶名正則 //用戶名正則,4到16位(字母,數(shù)字,下劃線,減號(hào)) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //輸出 tr...

    MarvinZhang 評(píng)論0 收藏0
  • 基于規(guī)則評(píng)分密碼強(qiáng)度檢測(cè)算法分析及實(shí)現(xiàn)(JavaScript)

    摘要:方案簡單方案算法通過密碼構(gòu)成分析,結(jié)合權(quán)重分派,統(tǒng)計(jì)得出密碼強(qiáng)度得分。 簡言 用正則表達(dá)式做用戶密碼強(qiáng)度的通過性判定,過于簡單粗暴,不但用戶體驗(yàn)差,而且用戶帳號(hào)安全性也差。那么如何準(zhǔn)確評(píng)價(jià)用戶密碼的強(qiáng)度,保護(hù)用戶帳號(hào)安全呢?本文分析介紹了幾種基于規(guī)則評(píng)分的密碼強(qiáng)度檢測(cè)算法,并給出了相應(yīng)的演示程序。大家可以根據(jù)自己項(xiàng)目安全性需要,做最適合于自己的方案選擇。 showImg(http://...

    ernest.wang 評(píng)論0 收藏0
  • 正則達(dá)式

    摘要:最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫,作用是對(duì)字符串執(zhí)行模式匹配。學(xué)習(xí)目標(biāo)了解正則表達(dá)式語法在中使用正則表達(dá)式在中使 JS高級(jí)技巧 本篇是看的《JS高級(jí)程序設(shè)計(jì)》第23章《高級(jí)技巧》做的讀書分享。本篇按照書里的思路根據(jù)自己的理解和經(jīng)驗(yàn),進(jìn)行擴(kuò)展延伸,同時(shí)指出書里的一些問題。將會(huì)討論安全的類型檢測(cè)、惰性載入函數(shù)、凍結(jié)對(duì)象、定時(shí)器等話題。1. 安全的類型檢測(cè)...

    yibinnn 評(píng)論0 收藏0
  • 正則達(dá)式

    摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書問世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫,作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來查找特定的信息(搜索),也可以用來查...

    bang590 評(píng)論0 收藏0
  • 正則達(dá)式實(shí)例

    摘要:收集在業(yè)務(wù)中經(jīng)常使用的正則表達(dá)式實(shí)例,方便以后進(jìn)行查找,減少工作量。校驗(yàn)手機(jī)號(hào)下面是國內(nèi)開頭的手機(jī)號(hào)正則表達(dá)式。提取網(wǎng)頁圖片假若你想提取網(wǎng)頁中所有圖片信息,可以利用下面的表達(dá)式。抽取注釋如果你需要移除中的注釋,可以使用如下的表達(dá)式。 收集在業(yè)務(wù)中經(jīng)常使用的正則表達(dá)式實(shí)例,方便以后進(jìn)行查找,減少工作量。 校驗(yàn)基本日期格式 校驗(yàn)密碼強(qiáng)度 校驗(yàn)中文 由數(shù)字、26個(gè)英文字母或下劃線組成的字符...

    zhoutk 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Carl

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<