判斷密碼是否包含鍵盤連續字元 滅霸級

2021-10-24 15:21:50 字數 2370 閱讀 4663

為了安全,有的有修改密碼校驗要求,密碼不能是鍵盤上了連續的3個及以上字元,無論橫著的(qwe或者ewq)還是豎著的(qaz或者zaq)。以下主要參考部落格:

也算站在了這位仁兄的肩膀上了吧,謝謝。皮一下~。

功能詳述:可進行密碼是否包含鍵盤列連續或行連續檢測,密碼長度小於等於8位不能鍵盤連續3個及以上字母,數字,特殊字元,9位不能鍵盤連續4個但是可以連續3個,10位不可鍵盤連續5個但能4個,依次類推。

用兩個與傳入密碼長度相等的一維陣列(row行陣列,column列陣列)

按密碼順序在二維鍵盤陣列中查詢每個字元,找到了則用

一維行列陣列分別存放密碼中每個字元的行號和列號

然後迴圈分析行號和列號是否滿足二維鍵盤陣列的值來判斷是否連續

bool iskeyboardcontinuouschar( lpctstr lpstr )

// 注意,下面的鍵盤字元表都只列出小寫字元,判斷前會將輸入字元中的

// 大寫字母都轉換成小寫字母

// 非shift鍵盤字元表

tchar aachartable1[4][13] = ;

// 包含shift鍵盤的字元表

tchar aachartable2[4][13] =

', '|',

'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ':', '"', '\0', '\0',

'z', 'x', 'c', 'v', 'b', 'n', 'm', '', '?', '\0', '\0', '\0'

}; // 獲取座標位置

int nstrlen = _tcslen( lpstr );

// 定義位置陣列

// row - 行,col - column 列

int* prowcharpos = new int[nstrlen];

int* pcolcharpos = new int[nstrlen];

for (int i = 0; i < nstrlen; i++)

// 檢索在表1中的位置,構建位置陣列

for ( int nrowtable1idx = 0; nrowtable1idx < 4; nrowtable1idx++ ) }}

// 在表1中沒找到,到表二中去找,找到則continue

if ( pcolcharpos[i] != -1 )

// 檢索在表2中的位置,構建位置陣列

for ( int nrowtable2idx = 0; nrowtable2idx < 4; nrowtable2idx++ )

}} }

// 匹配座標連線

for ( int j = 1; j <= nstrlen-2; j++ )

while(); 先跑一次再迴圈,檢測密碼長度小於8的情況

do }

//同一列

if (pcolcharpos[j - 1+i] == pcolcharpos[j + i] && pcolcharpos[j + i] == pcolcharpos[j + 1 + i])

}i++;

} while (i <= nstrlen - 8);

//密碼位數小於等於8

if ((nstrlen <= 8 && rowflag == 0)|| (nstrlen <= 8 && colounflag == 0))

//位數大於8

多次進行三個鍵盤連續檢測,例如檢測是否四位鍵盤連續:qwer,需要兩次是否三位鍵盤連續檢測,先檢測qwe,再檢測wer來判斷是否四位鍵盤連續。

判斷密碼是否連續3個及以上重複或者字母連續

for (int i = 0; i 

// 判斷連續字元: 正序 + 倒序

if ((n1 + 1 == n2 && n1 + 2 == n3) || (n1 - 1 == n2 && n1 - 2 == n3))

}return false;

oracle怎麼判斷是否包含字元

方法 1 利用like配合 語法為 where 字段 like 字元 2 利用contains函式,語法為 contains 字段,字元 3 利用instr函式,語法為 instr 字段,字元 0 本教程操作環境 windows10系統 oracle 11g版 dell g3電腦。1 使用萬用字元 ...

密碼複雜性校驗 包含使用者名稱 鍵盤連續字元匹配

驗證密碼 是否包含使用者名稱字元 密碼應與使用者名稱無相關性,密碼中不得包含使用者名稱的完整字串 大小寫變位或形似變換的字串 public static boolean verifypasswordcontainaccount string password,string account strin...

判斷字串是否包含漢子

如下 using system using system.collections.generic using system.linq using system.text using system.text.regularexpressions 判斷表示是否全為英文 判斷字串中是否包含中文 需要判斷的...