最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android?Java判斷密碼強(qiáng)度方法實(shí)例(強(qiáng)度顯示)

 更新時(shí)間:2024年03月16日 08:43:28   作者:才疏學(xué)淺,努力修煉  
在現(xiàn)代社會(huì)中,密碼是確保我們個(gè)人信息和賬戶安全的重要手段之一,為了提高密碼的安全性,我們可以使用正則表達(dá)式來(lái)判斷密碼的強(qiáng)度,這篇文章主要給大家介紹了關(guān)于Android?Java判斷密碼強(qiáng)度(強(qiáng)度顯示)的相關(guān)資料,需要的朋友可以參考下

1,正則表達(dá)式

密碼強(qiáng)度的正則表達(dá)式

    public static final String WEAK_PATTERN = "(^(?=.*[0-9])(?=.*[a-z])[0-9a-z]{6,18}$)|(^(?=.*[0-9])(?=.*[A-Z])[0-9A-Z]{6,18}$)";//全數(shù)字+字母(大/小)
    public static final String MEDIUM_PATTERN = "((?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,18})|((?=.*[0-9])(?=.*[a-z])(?=.*[^\\w\\s]).{6,18})|((?=.*[0-9])(?=.*[A-Z])(?=.*[^\\w\\s]).{6,18})";//數(shù)字+字母(大+?。?數(shù)字+小+特殊字符/數(shù)字+大+特殊字符
    public static final String STRONG_PATTERN = "(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[^\\w\\s]).{6,18}";//數(shù)字+字母(大+?。?特殊字符

我們定義密碼至少有數(shù)字和字母,且最少6位最多18位,按照密碼強(qiáng)弱層度分成了弱中強(qiáng)三種情況。

弱:是數(shù)字+字母(大/?。?,此時(shí)的字母要么全是大寫(xiě),要么全是小寫(xiě)

中:數(shù)字+字母(大+?。?數(shù)字+小+特殊字符/數(shù)字+大+特殊字符,情況比較多分為三種情況     :

  • 數(shù)字+字母(大寫(xiě)+小寫(xiě)):此時(shí)字母大小寫(xiě)同時(shí)存在
  • 數(shù)字+小+特殊字符:數(shù)字+小寫(xiě)字母+特殊字符(比如@、¥、*等)的組合
  • 數(shù)字+大+特殊字符:數(shù)字+大寫(xiě)字母+特殊字符的組合

強(qiáng):數(shù)字+字母(大+小)+特殊字符,數(shù)字+字母大小寫(xiě)同時(shí)存在+特殊字符,最強(qiáng)密碼

解析正則表達(dá)式

WEAK_PATTERN

(                           // 開(kāi)始第一個(gè)正則表達(dá)式組
    ^                       // 匹配字符串的開(kāi)始位置
    (?=.*[0-9])             // 正向先行斷言,匹配至少一個(gè)數(shù)字
    (?=.*[a-z])             // 正向先行斷言,匹配至少一個(gè)小寫(xiě)字母
    [0-9a-z]{6,18}          // 匹配6-18個(gè)數(shù)字或小寫(xiě)字母的組合
    $                       // 匹配字符串的結(jié)束位置
)                           // 結(jié)束第一個(gè)正則表達(dá)式組
|                           // 或
(                           // 開(kāi)始第二個(gè)正則表達(dá)式組
    ^                       // 匹配字符串的開(kāi)始位置
    (?=.*[0-9])             // 正向先行斷言,匹配至少一個(gè)數(shù)字
    (?=.*[A-Z])             // 正向先行斷言,匹配至少一個(gè)大寫(xiě)字母
    [0-9A-Z]{6,18}          // 匹配6-18個(gè)數(shù)字或大寫(xiě)字母的組合
    $                       // 匹配字符串的結(jié)束位置
)                           // 結(jié)束第二個(gè)正則表達(dá)式組

該正則表達(dá)式包含兩個(gè)正則表達(dá)式組,用 | 進(jìn)行分隔,表示匹配兩種不同的密碼格式,分別為:

  • 至少包含一個(gè)數(shù)字和一個(gè)小寫(xiě)字母的6-18位密碼;
  • 至少包含一個(gè)數(shù)字和一個(gè)大寫(xiě)字母的6-18位密碼。

每個(gè)正則表達(dá)式組都使用了正向先行斷言,確保密碼中至少包含指定的字符類型。然后使用字符集 [0-9a-z] 或 [0-9A-Z] 來(lái)匹配密碼中的數(shù)字和字母。最后使用 {6,18} 來(lái)限制密碼長(zhǎng)度在6-18個(gè)字符之間,并使用 ^ 和 $ 分別表示匹配字符串的開(kāi)始和結(jié)束位置。

MEDIUM_PATTERN

(                                   // 開(kāi)始第一個(gè)正則表達(dá)式組
    (?=.*[0-9])                     // 正向先行斷言,匹配至少一個(gè)數(shù)字
    (?=.*[a-z])                     // 正向先行斷言,匹配至少一個(gè)小寫(xiě)字母
    (?=.*[A-Z])                     // 正向先行斷言,匹配至少一個(gè)大寫(xiě)字母
    .{6,18}                         // 匹配6-18個(gè)任意字符
)                                   // 結(jié)束第一個(gè)正則表達(dá)式組
|                                   // 或
(                                   // 開(kāi)始第二個(gè)正則表達(dá)式組
    (?=.*[0-9])                     // 正向先行斷言,匹配至少一個(gè)數(shù)字
    (?=.*[a-z])                     // 正向先行斷言,匹配至少一個(gè)小寫(xiě)字母
    (?=.*[^\w\s])                   // 正向先行斷言,匹配至少一個(gè)非單詞字符和非空白字符
    .{6,18}                         // 匹配6-18個(gè)任意字符
)                                   // 結(jié)束第二個(gè)正則表達(dá)式組
|                                   // 或
(                                   // 開(kāi)始第三個(gè)正則表達(dá)式組
    (?=.*[0-9])                     // 正向先行斷言,匹配至少一個(gè)數(shù)字
    (?=.*[A-Z])                     // 正向先行斷言,匹配至少一個(gè)大寫(xiě)字母
    (?=.*[^\w\s])                   // 正向先行斷言,匹配至少一個(gè)非單詞字符和非空白字符
    .{6,18}                         // 匹配6-18個(gè)任意字符
)                                   // 結(jié)束第三個(gè)正則表達(dá)式組

該正則表達(dá)式包含三個(gè)正則表達(dá)式組,用 | 進(jìn)行分隔,表示匹配三種不同的密碼格式,分別為:

  • 包含數(shù)字、小寫(xiě)字母和大寫(xiě)字母的6-18位密碼;
  • 包含數(shù)字、小寫(xiě)字母和非單詞字符和非空白字符的6-18位密碼;
  • 包含數(shù)字、大寫(xiě)字母和非單詞字符和非空白字符的6-18位密碼。

每個(gè)正則表達(dá)式組都使用了三個(gè)正向先行斷言,確保密碼中至少包含指定的字符類型。(?=.[0-9]) 表示密碼中至少包含一個(gè)數(shù)字,(?=.[a-z]) 表示密碼中至少包含一個(gè)小寫(xiě)字母,(?=.[A-Z]) 表示密碼中至少包含一個(gè)大寫(xiě)字母,(?=.[^\w\s]) 表示密碼中至少包含一個(gè)非單詞字符和非空白字符。

最后使用 .{6,18} 來(lái)匹配密碼中的任意字符,并限制密碼長(zhǎng)度在6-18個(gè)字符之間。

STRONG_PATTERN

(                           // 開(kāi)始正則表達(dá)式組
    ?=.*[0-9]               // 正向先行斷言,匹配至少一個(gè)數(shù)字
    (?=.*[a-z])             // 正向先行斷言,匹配至少一個(gè)小寫(xiě)字母
    (?=.*[A-Z])             // 正向先行斷言,匹配至少一個(gè)大寫(xiě)字母
    (?=.*[^\w\s])           // 正向先行斷言,匹配至少一個(gè)非單詞字符和非空白字符
    .{6,18}                 // 匹配6-18個(gè)任意字符
)                           // 結(jié)束正則表達(dá)式組

該正則表達(dá)式用于匹配包含數(shù)字、小寫(xiě)字母、大寫(xiě)字母和非單詞字符和非空白字符的6-18位密碼。

該正則表達(dá)式使用正向先行斷言,確保密碼中至少包含指定的字符類型。?=.*[0-9] 表示密碼中至少包含一個(gè)數(shù)字,?=.*[a-z] 表示密碼中至少包含一個(gè)小寫(xiě)字母,?=.*[A-Z] 表示密碼中至少包含一個(gè)大寫(xiě)字母,?=.*[^\w\s] 表示密碼中至少包含一個(gè)非單詞字符和非空白字符。

最后使用 .{6,18} 來(lái)匹配密碼中的任意字符,并限制密碼長(zhǎng)度在6-18個(gè)字符之間。

2,使用方法

    public static String checkStrength(String password) {
        if (Pattern.matches(STRONG_PATTERN, password)) {
            return "strong";
        }else if (Pattern.matches(MEDIUM_PATTERN, password)) {
            return "medium";
        } else if (Pattern.matches(WEAK_PATTERN, password)) {
            return "weak";
        }else {
            return "invalid";
        }
    }

    public static void main(String[] args) {
        while(true){
            Scanner scan = new Scanner(System.in);
            String password = scan.next();
            String strength = checkStrength(password);
            System.out.println("Password strength: " + strength);
        }
    }

測(cè)試結(jié)果

3,項(xiàng)目中使用效果

總結(jié)

到此這篇關(guān)于Android Java判斷密碼強(qiáng)度(強(qiáng)度顯示)的文章就介紹到這了,更多相關(guān)Android Java判斷密碼強(qiáng)度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中遍歷Map的多種方法示例及優(yōu)缺點(diǎn)總結(jié)

    Java中遍歷Map的多種方法示例及優(yōu)缺點(diǎn)總結(jié)

    在java中遍歷Map有不少的方法,下面這篇文章主要給大家介紹了關(guān)于Java中遍歷Map的多種方法,以及各種方法的優(yōu)缺點(diǎn)總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • Windows?10卸載JDK1.8超詳細(xì)圖文教程

    Windows?10卸載JDK1.8超詳細(xì)圖文教程

    這篇文章主要介紹了Windows?10卸載JDK1.8超詳細(xì)圖文教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • java-springboot3.2+多數(shù)據(jù)源+hikari連接池的配置使用

    java-springboot3.2+多數(shù)據(jù)源+hikari連接池的配置使用

    本文給大家介紹java-springboot3.2+多數(shù)據(jù)源+hikari連接池的配置使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-11-11
  • java編寫(xiě)創(chuàng)建數(shù)據(jù)庫(kù)和表的程序

    java編寫(xiě)創(chuàng)建數(shù)據(jù)庫(kù)和表的程序

    這篇文章主要為大家詳細(xì)介紹了java編寫(xiě)創(chuàng)建數(shù)據(jù)庫(kù)和表的程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java構(gòu)建高效結(jié)果緩存方法示例

    Java構(gòu)建高效結(jié)果緩存方法示例

    這篇文章主要介紹了Java構(gòu)建高效結(jié)果緩存方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • springboot自動(dòng)掃描添加的BeanDefinition源碼實(shí)例詳解

    springboot自動(dòng)掃描添加的BeanDefinition源碼實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于springboot自動(dòng)掃描添加的BeanDefinition的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java卡片布局管理器解釋及實(shí)例

    Java卡片布局管理器解釋及實(shí)例

    這篇文章主要介紹了Java卡片布局管理器解釋及實(shí)例,需要的朋友可以參考下。
    2017-09-09
  • Java使用openssl檢測(cè)網(wǎng)站是否支持ocsp

    Java使用openssl檢測(cè)網(wǎng)站是否支持ocsp

    OCSP在線證書(shū)狀態(tài)協(xié)議是為了替換CRL而提出來(lái)的。對(duì)于現(xiàn)代web服務(wù)器來(lái)說(shuō)一般都是支持OCSP的,OCSP也是現(xiàn)代web服務(wù)器的標(biāo)配,這篇文章主要介紹了Java使用openssl檢測(cè)網(wǎng)站是否支持ocsp,需要的朋友可以參考下
    2022-07-07
  • Java中的Runnable,Callable,F(xiàn)uture,F(xiàn)utureTask的比較

    Java中的Runnable,Callable,F(xiàn)uture,F(xiàn)utureTask的比較

    這篇文章主要介紹了Java中的Runnable,Callable,F(xiàn)uture,F(xiàn)utureTask的比較的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java Hibernate使用方法及整合查詢

    Java Hibernate使用方法及整合查詢

    這篇文章主要介紹了Java使用與整合Hibernate,在正式進(jìn)入Hibernate的高級(jí)應(yīng)用之前,需要了解聲明是數(shù)據(jù)模型與領(lǐng)域模型,這兩個(gè)概念將會(huì)幫助我們更好的理解實(shí)體對(duì)象的關(guān)聯(lián)關(guān)系映射
    2023-04-04

最新評(píng)論

泾阳县| 曲靖市| 昌吉市| 吉林市| 巴林左旗| 塔河县| 墨竹工卡县| 巫溪县| 库伦旗| 盘锦市| 都江堰市| 平定县| 永登县| 和静县| 靖远县| 余干县| 潢川县| 牙克石市| 全州县| 阿荣旗| 乌审旗| 左云县| 肃北| 华宁县| 双牌县| 崇左市| 中方县| 黄浦区| 武冈市| 廉江市| 濮阳县| 上高县| 邯郸市| 荣昌县| 寻乌县| 讷河市| 左权县| 嘉鱼县| 济南市| 报价| 林甸县|