判断密码是否包含键盘连续字符【灭霸级】

该博客探讨了如何确保密码安全,特别是在修改密码时,不允许存在键盘上的连续3个及以上字符,无论是水平还是垂直排列。作者介绍了实现这一功能的原理和代码,包括行数组和列数组的使用,以及如何检测不同长度密码中的连续字符问题。此外,还讨论了检测更长连续字符的策略和一种彩蛋功能——检查重复和字母连续的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了安全,有的有修改密码校验要求,密码不能是键盘上了连续的3个及以上字符,无论横着的(qwe或者ewq)还是竖着的(qaz或者zaq)。以下主要参考博客:https://blog.csdn.net/chenlycly/article/details/90692006
也算站在了这位仁兄的肩膀上了吧,谢谢。皮一下~。

功能详述:可进行密码是否包含键盘列连续或行连续检测,密码长度小于等于8位不能键盘连续3个及以上字母,数字,特殊字符,9位不能键盘连续4个但是可以连续3个,10位不可键盘连续5个但能4个,依次类推。

1. 原理:

用两个与传入密码长度相等的一维数组(Row行数组,Column列数组)
按密码顺序在二维键盘数组中查找每个字符,找到了则用
一维行列数组分别存放密码中每个字符的行号和列号
然后循环分析行号和列号是否满足二维键盘数组的值来判断是否连续

2. 实现代码

BOOL IsKeyBoardContinuousChar( LPCTSTR lpStr )
{
	if ( lpStr == NULL || _tcslen(lpStr) == 0 )
	{
		return FALSE;
	}
	// 注意,下面的键盘字符表都只列出小写字符,判断前会将输入字符中的
	// 大写字母都转换成小写字母
	// 非shift键盘字符表
	TCHAR aaCharTable1[4][13] =
	{ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', '\0',
	  'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '['
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值