Qt 實現密碼等級的校驗

2021-10-23 20:54:38 字數 2838 閱讀 4946

做應用程式的過程中,總是會涉及到使用者管理,涉及到使用者管理,那麼總是避免不了需要涉及到使用者密碼的設定。今天我們看看怎麼用qt來管理使用者密碼,實現使用者密碼等級的設定。

首先我們設定一下密碼強度的規則:

先來看下效果,為了能夠直觀的顯示輸入的內容,將qlineedit的顯示模式設定為普通模式。

因此,根據上述規則,我們就能制定出跟密碼等級相對應的正規表示式:

1、m_regstrong.

setpattern

(qstring

("(?=^.$)((?=.*\\d)|(?=.*\\w+))(?![.\\n])(?=.*[a-z])(?=.*[a-z]).*$"))

;2、m_regmedium.

setpattern

(qstring

("(?!^\\d+$)(?!^[a-za-z]+$)."))

;3、m_regweak.

setpattern

(qstring

("(?!^\\d+$)(?!^[a-za-z]+$)."))

;

我們使用 qprogressbar來顯示的展示密碼的等級,以其0-100表示,33、66、100為其等級的區分,並且各等級之間顯示顏色不同來區分。

設定密碼等級的顯示為:

void passwdcheckwidget::

setpasswdlevel

(passwordsafelevel level)

case medium:

case strong:

default

:break;}

this

->

style()

->

unpolish

(ui-

>progressbar)

;this

->

style()

->

polish

(ui-

>progressbar)

;this

->

style()

->

unpolish

(ui-

>lbintensity)

;this

->

style()

->

polish

(ui-

>lbintensity);if

(!isvisible()

)}

對於密碼等級的檢測則為:

bool passwdcheckwidget::

checkpasswdstrength()

if(m_regmedium.

exactmatch

(m_passwd))if

(m_regweak.

exactmatch

(m_passwd)

)setvisible

(false);

return

false

;}

void passwdcheckwidget::

setprompt

(bool checked)

}

其中true表示密碼不滿足各等級,false表示確認密碼和輸入密碼不一樣。

比較兩者密碼是否一致:

bool passwdcheckwidget::

checkpasswd()

return

true

;}

ui-

>widgetlevel-

>

setpasswd

(value)

;ui-

>widgetprompt-

>

setpasswd

(value);if

(!ui-

>widgetlevel-

>

checkpasswdstrength()

)ui-

>widgetprompt-

>

setvisible

(false);

if(ui-

>lncpasswd-

>

text()

.isempty()

)if(!ui-

>widgetprompt-

>

checkpasswd()

)ui-

>widgetprompt-

>

setvisible

(false

);

密碼確認框的輸入訊號呼叫:

ui-

>widgetlevel-

>

setcpasswd

(value)

;ui-

>widgetprompt-

>

setcpasswd

(value);if

(!ui-

>widgetlevel-

>

checkpasswdstrength()

)if(!ui-

>widgetprompt-

>

checkpasswd()

)ui-

>widgetprompt-

>

setvisible

(false

);

測試**。

開發常用 校驗表單 密碼的校驗

要求 必填,密碼應為8 20位字元,必須包含數字 字母 下劃線中的兩種以上 validate.js檔案內容 檢查密碼是否合法 function checkpwd userpassword if userpassword.length 20 userpassword.length 8 if 0 9 g...

基於Qt的CRC16校驗實現(查表法)

簡介 crc為校驗和的一種,是兩個位元組資料流採用二進位制除法 沒有進製,使用xor來代替減法 相除所得到的餘數。其中被除數是需要計算校驗和的資訊資料流的二進位制表示 除數是乙個長度為 n 1 的預定義 短 的二進位制數,通常用多項式的係數來表示。rc16碼表 static const quint1...

表單提交校驗與密碼的加密

首先,我們需要對使用者名稱進行非空校驗,為了避免使用者輸入兩個空串,我們在此自定義去空轉換器,springmvc.xml的定義 1 2 bean id conversionservice class org.springframework.format.support.formattingconve...