做應用程式的過程中,總是會涉及到使用者管理,涉及到使用者管理,那麼總是避免不了需要涉及到使用者密碼的設定。今天我們看看怎麼用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...